当前位置:
文档之家› c语言第11章-结构体与共用体
c语言第11章-结构体与共用体
形式三:
struct
{ 类型标识符 成员名; 类型标识符 成员名;
……………. }结构体变量={初始数据};
例 struct { int num; char name[20]; char sex; int age; char addr[30]; }stu1={112,“Wang Lin”,‘M’,19, “200 Beijing Road”};
用无名结构体直接定义 变量只能一次
说明
❖结构体类型与结构体变量概念不同
类型:不分配内存;
变量:分配内存
类型:不能赋值、存取、运算; 变量:可以
❖结构体可嵌套
❖结构体成员名与程序中变量名可相同,不会混淆
例 {st例rui❖ncstt结tmrdu构oacntt体eths类;tud型e及nt 变量的作用域与生存期
定义结构体类型的同时定义结构体变量
一般形式:
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;
c语言第11章-结构体与共用体
struct student a;num
name
例 struct student
sex
{ int num;
age
char name[20];
char sex;
score
int age;
float score;
char addr[30];
addr
};
…..
…
2字节 20字节 1字节 2字节
{intindtayn;um;
intcyheaarr;name[20];
}; struct date
struct {stuidnet nmtonth; { int numi;nt day;
birthday
num name num namemonth
dbairythdayyear
char naimntey[2e0a]r;;
{ int num; { int num;
char name[20]; char name[20];
char sex;
char sex;
int age;
int age;
float sco30]; char addr[30];
};
};
struct student stuS1T,sUtDu2E;NT stu1,stu2;
4字节
30字节
结构体类型定义的作用域
结构体类型定义描述结构 的组织形式,不分配内存
❖ 11.2 结构体变量的定义
先定义结构体类型,再定义结构体变量
❖一般形式:
struct 结构体名
{
类型标识符 成员名;
类型标识符 成员名;
例 #define……S…T…U…D.ENT struct student 例 struct student ST}s;tUruDctE结N构T体名 变量名表列;
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”};
}st}us1tu,s1tu,s2tu; 2;
❖ 11.4 结构体变量的初始化
形式一:
struct 结构体名
{ 类型标识符 成员名; 类型标识符 成员名;
……………. }; struct 结构体名 结构体变量={初始数据};
例 struct student { int num; char name[20]; char sex; int age; char addr[30]; };
month day year
stru}cbtirdthadteayb; irthday;
}stu;}stu;
❖ 11.3 结构体变量的引用
引用规则
❖ 结构体变量不能整体引用,只能引用变量成员
引用方式: 结构体变量名.成员名
例 例
ss{}{stt例rrt❖❖uuu{ cc1可结stt,{}iiitnccifcscsnnccifcbrn以构nlluhhohtthhhhotttissturtrcaaaaaaaaanuntitt将体a2aiinnuhutrrtrnnrtrrrucu例g;gtudddstttsmsa一嵌nmsaseenmmneaeccedyedadt;d;;例a;anyunoo个套exaxdom;dam;mtdrtr;a;yrnrse{}ete[结时[e;rseett33;;rh[nt[2[0u0su构逐{}2;2t0s]c]t100;;rtt]体级u,iu];]snccifcs成优结;;nlct1shhhottus变引ttu员先合s,t1iaaaantnccifctsua2=unupl级性(trrru量用hhhotnt分1{2sgr;tud1isumsa=aaaa::nn.ten0从a量2embuc赋s1etdtrrru1f;;atg;n(oid左xu)d,s“rsam“运m%et值1nrt;eWcred向he;;[;a算dnoeax3ndd;给,右mtnar%;[0符rae2m([Ls]ey另3;0;ie,n.%[0]m2”;一,m]c)‘0s;M,osto%]ut个s’nun;s,1dt1t1tut.hu,9hs.结%1a1,c.8=i…g.sffonb7,(构ec1%rsui….deo+r5t2mtuas+r+h,体.e“\1;y.==;dnD==s1a”8a变=,t0ysu5Ls;t2i.utya5量u.e1sn;2(a)c”);}ro);re(;())