- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章结构体、共用体与枚举选编
11.1 结构体
11.2 共用体
11.3 枚举类型
11.4 用户定义类型
11.5 程序举例
第11章 结构体、共用体与枚举
11.1 结构体
数组是一组有序的同类型数据的集合,直接由类型标识符定义,如:int a[5]。而结构体一般是不同类型数据集合,例如一个学生的信息
注意:
结构体要先定义类型(数据结构),然后才能用该类型定义实体(变量、数组、指针等)。
11.1.1 结构体类型的定义
1.结构体类型的定义形式为:
struct 结构体类型名
{成员项表列};
struct 结构体类型名
{数据类型 数据项1;
数据类型 数据项2;
…… ……
数据类型 数据项n; };
例如:
struct student
{ char name[20];
int age;
char sex;
long num;
char nation;
char address[20];
};
2.结构体类型中成员项的类型也可以相同,例如:
struct date
{int month;
int day;
int year; };
3. 结构体类型中成员项的类型若是结构体类型,就构成结构体类型嵌套。
struct person1
{char name[20];
struct date birthday;
char sex;
long num;
char nation;
char address[20];
long tel; };
11.1.2 结构体类型变量的定义
结构体变量的定义有三种方法
1.用已定义的结构体类型名定义变量,例如:
struct student stu1,stu2;
定义了两个结构体变量stu1和stu2,用上面的结构体类型还可再定义变量:
struct student men,women;
2.在定义结构体类型的同时定义结构体变量。例如:
struct student {char name[20]; int age; …… char address[20]; }stu1,stu2;
一般的形式为: struct 类型名 {成员项表列; }变量名表列;
这样定义的结构体类型也可多次使用,如: struct student men,women;
3.不定义结构体类型名,直接定义结构体变量。
一般形式为:
struct
{成员项表列;
}变量名表列;
不定义结构体类型名直接定义结构体变量,该类型只能使用一次,无法再定义同类型的其他变量。
可见:struct
{成员项表列;} 是表示结构体类型的核心。
4. 结构体变量存储单元的字节数
系统为结构体变量开辟一段连续存储单元,其字节数可以用运算符sizeof测得:
sizeof(变量名);
或 sizeof(类型名);
例如:sizeof(stu1);
或sizeof(struct student );结果都是50,存储情况为:
对嵌套结构体类型,例如:
sizeof(struct person1 );结果是58,其存储情况为:
name
birthday
sex
num
nation
address
month
day
year
20B
4B
4B
4B
1B
4B
1B
20B
可见,数据都是存放在其基本成员之中。
11.1.3 结构体变量的引用
1.引用结构体成员
在无嵌套的情况下,引用结构体变量成员的形式为:
结构体变量名·成员名
其中的“.”叫“结构体成员运算符”,结构体成员相当于一个普通变量,例如: student.num
在有嵌套的情况下引用形式为:
结构体变量名·结构体成员名·…·基本成员名
例如: student.birthday.year
注意:对结构体成员的访问与普通变量或数组相同。
2.结构体变量的赋值、输入和输出
对结构体变量赋常数值、输入和输出只能对基本成员进行。例如:
student.num=1234;
gets();
printf(“%d”, student.birthday.year);
3.同一类型的结构体变量之间可相互赋值(数组之间不能整体赋值)
例如: stu1=stu2;
11.1.4 结构体变量的初始化
在结构体变量定义的同时可以进行初始化赋值,例如:
struct p
您可能关注的文档
最近下载
- 建筑工程图集 99S203、99(03)S203:消防水泵接合器安装.pdf VIP
- 在2025年区庆祝第41个教师节暨表彰大会上的讲话.docx VIP
- 人教版四年级数学《上册全册》全套精品教学课件小学优秀课堂课件.pptx VIP
- 水库生态养殖可行报告.docx
- 隧道巡检机器人研发项目可行性研究报告.docx VIP
- 教科版(2024)小学科学一年级上册(全册)教案及反思(含目录).docx VIP
- 景观绿化工程施工设计方案.docx VIP
- 建筑结构与选型课程设计.docx VIP
- 建筑结构选型课程设计.docx VIP
- 安徽省庐巢七校联考2022-2023学年高二下学期3月期中英语试卷(含答案).pdf VIP
文档评论(0)