第八章 结构体与共用体.pptx
第八章结构体与共用体;8.1概述;8.1概述;8.1概述;8.1概述;8.1概述;8.1概述;8.1概述;8.1概述;8.2定义结构体类型的方法;8.2.1定义结构体类型的变量;8.2.1定义结构体类型的变量;8.2.1定义结构体类型的变量;8.2.1定义结构体类型的变量;8.2.1定义结构体类型的变量;8.2.1定义结构体类型的变量;8.2.1定义结构体类型的变量;8.2.2定义结构体数组;8.2.2定义结构体数组;8.2.2定义结构体数组
结构体数组的定义方法和结构体变量的定义方法相同
可以先定义一个结构体,然后用该结构体类型来定义数组,也可以在定义结构体的同时定义结构体数组。;8.2.2定义结构体数组
定义结构体数组一般形式是
①struct结构体名
{成员表列}数组名[数组长度];
②先声明一个结构体类型,然后再用此类型定义结构体数组:
结构体类型数组名[数组长度];;8.2.2定义结构体数组;这两种形式功能相同,都是定义一个含有3个元素的结构体数组如图8.1。
;8.3.1.结构体变量的引用
8.3.2结构体数组的元素引用;一般对结构体变量的引用都转化为对结构体中的成员的引用,由于结构中的成员都依赖于一个结构体变量,因此使用结构体中的成员必须指出访问的结构体变量。一般引用形式为:
结构体变量名.结构成员名
;例如:给stu数组中的第一个元素赋值:
strcopy(str[0].xh,);
strcopy(stu[0].xm,”李绯”);
stu[0].sx=85;
stu[0].yw=90;
stu[0].yy=78;
stu[0].jsj=92;
以上都是结构体中对成员变量的引用。;数组中的每一个元素作为一个下标变量,所以可以通过结构体数组元素去访问结构体中的成员。
一般形式是:
结构体数组名[下标].成员名;
;例如:给stu数组中的第一个元素赋值:
strcopy(str[0].xh,);
strcopy(stu[0].xm,”李绯”);
stu[0].sx=85;
stu[0].yw=90;
stu[0].yy=78;
stu[0].jsj=92;
;strcopy(str[0].xh,);
strcopy(stu[0].xm,”李绯”);
stu[0].sx=85;
stu[0].yw=90;
stu[0].yy=78;
stu[0].jsj=92;
;8.4结构体的初始化;8.4结构体的初始化;8.4.1结构体变量的初始化;例8.1对结构体address的变量str1进行初始化,并输出str1的各成员值。
解题思路:
自己建立一个结构体类型,包括有关地址信息的各成员
用它定义结构体变量,??时赋以初值
在main()函数中输出该结构体变量的各成员;#includestdio.h
structaddress
{charname[20];charadd[30];
unsignedlongphone;intzip;
}stu1={张力,北京市东城区东四北大街108号,123456”};
intmain()
{
printf(姓名:%s\n,stu1.name);
printf(“家庭地址:%s\n”,stu1.add);
printf(“电话:%ld\n”,stu1.phone);
printf(“邮政编码:%d\n”,stu1.zip);
return0;
};#includestdio.h
structaddress
{charname[20];charadd[30];
unsignedlongphone;intzip;
}stu1={张力,北京市东城区东四北大街108号,123456”};
intmain()
{
printf(姓名:%s\n,stu1.name);
printf(“家庭地址:%s\n”,stu1.add);
printf(“电话:%ld\n”,stu1.phone);
printf(“邮政编码:%d\n”,stu1.zip);
return0;
};#includestdio.h
structaddress
{charname[20