文档详情

c结构体与共用体c语言程序设计教程.ppt

发布:2021-02-01约9.11千字共34页下载文档
文本预览下载声明
第十一章 结构体与共用体 § 11.1 结构体 ? 结构体是一种 构造 数据类型 ? 用途:把 不同类型 的数据组合成一个整体 ------- 自定义 数据类型 ? 结构体类型定义 struct [ 结构体名 ] { 类型标识符 成员名; 类型标识符 成员名; ……………. } ; 成员类型可以是 基本型或构造型 struct 是 关键字 , 不能省略 合法标识符 可省 : 无名结构体 ? 定义结构体类型的同时定义结构体变量 一般形式: struct 结构体名 { 类型标识符 成员名; 类型标识符 成员名; ……………. } 变量名表列 ; 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; ? 直接定义结构体变量 一般形式: struct { 类型标识符 成员名; 类型标识符 成员名; ……………. } 变量名表列 ; 例 struct { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; 用 无名结构体 直接定义 变量 只能一次 ? 说明 ? 结构体类型与结构体变量概念不同 ? 类型 : 不分配内存 ; 变量 : 分配内存 ? 类型 : 不能赋值、存取、运算 ; 变量 : 可以 ? 结构体可嵌套 ? 结构体成员名与程序中变量名可相同,不会混淆 ? 结构体类型及变量的作用域与生存期 例 struct date { int month; int day; int year; }; struct student { int num; char name[20]; struct date birthday ; }stu; num name birthday month day year 例 struct student { int num; char name[20]; struct date { int month; int day; int year; } birthday; }stu; num name birthday month day year § 11.3 结构体变量的引用 ? 引用规则 ? 结构体变量 不能整体引用 , 只能引用变量 成员 ? 可以将一个结 构体变量赋值给另一个结构体变量 ? 结构体嵌套时 逐级引用 成员 ( 分量 ) 运算符 优先级 : 1 结合性 : 从左向右 引用方式: 结构体变量名 . 成员名 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; stu1.num=10; stu1.score=85.5; stu1.score+=stu2.score; stu1.age++; 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; printf(“%d,%s,%c,%d,%f,%s \ n”, stu1 ); ( ? ) stu1={101,“Wan Lin”,‘M,19,87.5,“DaLian”}; ( ? ) 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; stu2=stu1; ( ) 例 struct student { int num; char name[20]; struct date { int month; int day; int year; }birthday; }stu1,stu2; num name birthday month day year stu1.birthday.month=12; 例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; }stu1,stu2; if( stu1==stu2 )
显示全部
相似文档