11第十一章结构体及共用体
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
§11.5 结构体数组
结构体数组的定义
三种形式:
形式一: 形str式uc二t s:tudent 形ssstttr式rru{}{uu{}cs三cct;tttus:[siiccicciti2ccinnnntuhhhhnnuhh]ttttdaaaatt;daaaaerrrrnnaerrggnnnssnguunnseeuteeaaemmte;;amxxmm;xm;;;;s;;eeteu[[[22[22000]]];];;;
用无名结构体直接定义 变量只能一次
说明
❖结构体类型与结构体变量概念不同
例 struct { int
mdao类类tne型型th::;不不分能配赋内值存、;存取、运算;
❖in结t d构ay体; 可嵌套
变量:分配内存 变量:可以
❖in结t y构ear体; 成员名与程序中变量名可相同,不会混淆
}; str例uctstrsutucdt esnttudent { in{t innutmn;um;
成员类型可以是 基本型或构造型
例 struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; };
num name
sex age
score
addr
…
2字节 20字节 1字节 2字节
4字节
构造数据类型
主讲:曹 莹
第十一章 结构体与共用体
§11.1 结构体
结构体是一种构造数据类型
用途:把不同类型的数据组合成一个整体------自定义数据类型
结构体类型定义
struct是关键字, 不能省略
struct [结构体名]
{ 类型标识符 成员名; 类型标识符 成员名;
……………. };
合法标识符 可省:无名结构体
charcnhaamr nea[m20e][;20]; strucsttrudcattedabtierthday; }stu; { int month;
int day; int year;
num name
birthday
month day year
birthday num name
month day year
§11.4 结构体变量的初始化
形式一: struct 结构体名
{ 类型标识符 成员名;
例 struct student
类型标识符 成员名; …………….
{ int num; };
char name[2st0ru];ct 结构体名 结构体变量={初始数据};
char sex;
int age;
char addr[30];
}; struct 结构体名 变量名表列;
源自文库
float score;
char addr[30];
};
struct student stu1,stu2;
定义结构体类型的同时定义结构体变量
一般形式: 例 struct student struct 结构体名
{ int num; { 类型标识符 成员名; char name[2类0]型; 标识符 成员名; char sex; ……………. int age; }变量名表列;
30字节
…..
结构体类型定义描述结构 的组织形式,不分配内存
§11.2 结构体变量的定义
先定义结构体类型,再定义结构体变量
❖一般形式: struct 结构体名
例 struct student
{ 类型标识符 成员名;
{ int num;
类型标识符 成员名;
char name[20]; …………….
char sex; int age;
};
struct student stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”};
形式二:
struct 结构体名
{ 类型标识符 成员名; 类型标识符 成员名;
……………. }结构体变量={初始数据};
例 struct student { int num; char name[20]; char sex; int age; char addr[30]; }stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”};
形式三:
struct
{ 类型标识符 成员名; 类型标识符 成员名;
……………. }结构体变量={初始数据};
例 struct { int num; char name[20]; char sex; int age; char addr[30]; }stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”};
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;
}birthday;
}stu;
§11.3 结构体变量的引用
引用规则
❖ 结构体变量不能整体引用,只能引用变量成员
引用方式: 结构体变量名.成员名
❖结构体嵌套时逐级成引员用(分量)运算符
优先级: 1 结合性:从左向右
例 例s{}tsrt例uu例s{}c1{tstr,iccifctssunnlu{}hhhttos{}icscsttur1bnaaattshtatunra2r,urrriitccifcttsaucurnngluu;hhhdiiisatorstcscnnnnttneu1mheaaaedctattntt;tunaa2,dxurrrniccifcsodts;annmgmmldyu;ta;hhhdtdsarrtosumsttneuaemy[eeaaaedce;otad3;nyaaa;2;xurrrnteod[tn;e0mregu;;2;dt[sarr;stn]ne2m[e0ehedce;t3;a0;xn];od[;0;m]2;trr;][e0e;3s;][t0;u21]0s;=p]t{r;uni1n1u0ti….mf1fb(s(,s“ist“…tur%tWsusut1tth1.ud1u..ans.1d,=n1aa%c.=ag.mosLnesycsruie,t+o.%numm+r+”2e(mc==;,)=o‘,s1%Mo)8nt0nu5td’;2th.,h,51.%=s;9cf1,bo8,%2ird7re;at.s;h5y\dn,“a”Dy,satyuLe1iaa)r;n”};(()) }stu1,stu2;