第三版C语言PPT课件讲解第11章结构体与共用体.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第三版C语言PPT课件讲解第11章结构体与共用体.ppt》由会员分享,可在线阅读,更多相关《第三版C语言PPT课件讲解第11章结构体与共用体.ppt(87页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第三版第三版C语言语言PPT课件课件讲解第讲解第11章结构体与章结构体与共用体共用体例:例:struct student int num;char name20;char sex;int age;float score;char addr30;numnamesexage scoreaddr 10010Li Fun M 18 87.5 Beijing 11.2 定义结构体类型变量的方法定义结构体类型变量的方法 前面只是指定了一个结构体类型,它相当于一个前面只是指定了一个结构体类型,它相当于一个模型,但其中并无具体数据,系统对之也不分配实际模型,但其中并无具体数据,系统对之也不分配实际内存单元。为
2、了能在程序中使用结构体类型的数据,内存单元。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数应当定义结构体类型的变量,并在其中存放具体的数据。可以采取以下三种方法定义结构体类型变量。据。可以采取以下三种方法定义结构体类型变量。一一一一.先定义结构体类型再定义变量名先定义结构体类型再定义变量名先定义结构体类型再定义变量名先定义结构体类型再定义变量名如在上面已定义一个结构体类型如在上面已定义一个结构体类型如在上面已定义一个结构体类型如在上面已定义一个结构体类型struct studentstruct student,可以,可以,可以,可以用它来定义变量。用它来定义
3、变量。用它来定义变量。用它来定义变量。例:例:例:例:struct student student1,student2;struct student student1,student2;表示表示表示表示:student1,student2:student1,student2为为为为struct studentstruct student类型变量。类型变量。类型变量。类型变量。注意:注意:注意:注意:定义结构体变量之前必须先定义结构体类型定义结构体变量之前必须先定义结构体类型定义结构体变量之前必须先定义结构体类型定义结构体变量之前必须先定义结构体类型。定义结构体类型和结构体变量时可使用符号常量定
4、义结构体类型和结构体变量时可使用符号常量定义结构体类型和结构体变量时可使用符号常量定义结构体类型和结构体变量时可使用符号常量例如:例如:例如:例如:#define STUDENT struct student#define STUDENT struct student STUDENT STUDENT int num;int num;char name20;char name20;char sex;char sex;int age;int age;float score;float score;char addr30;char addr30;STUENT student1,student2;ST
5、UENT student1,student2;二二二二.在定义类型的同时定义变量在定义类型的同时定义变量在定义类型的同时定义变量在定义类型的同时定义变量例如例如例如例如:struct student struct student int num;int num;char name20;char name20;char sex;char sex;int age;int age;float score;float score;char addr30;char addr30;student1,student2;student1,student2;三三三三.直接定义结构类型变量直接定义结构类型变量直接
6、定义结构类型变量直接定义结构类型变量 struct struct 成员表列成员表列成员表列成员表列 变量名表列变量名表列变量名表列变量名表列;例例例例:struct struct int num;int num;char name20;char name20;char sex;char sex;int age;int age;float score;float score;char addr30;char addr30;student1,student2;student1,student2;说明说明说明说明:1.1.只能对只能对只能对只能对结构体类型变量结构体类型变量结构体类型变量结构体类型变
7、量赋值,存取,运算等。赋值,存取,运算等。赋值,存取,运算等。赋值,存取,运算等。而不能对而不能对而不能对而不能对结构体类型结构体类型结构体类型结构体类型赋值,存取,运算等;赋值,存取,运算等;赋值,存取,运算等;赋值,存取,运算等;2.2.结构体中的结构体中的结构体中的结构体中的成员成员成员成员如同普通变量一样,可以单独如同普通变量一样,可以单独如同普通变量一样,可以单独如同普通变量一样,可以单独使用;使用;使用;使用;3.3.结构体类型中的结构体类型中的结构体类型中的结构体类型中的成员名可以与普通变量名相同成员名可以与普通变量名相同成员名可以与普通变量名相同成员名可以与普通变量名相同。但二
8、者是彼此独立的但二者是彼此独立的但二者是彼此独立的但二者是彼此独立的,互不干扰;互不干扰;互不干扰;互不干扰;4.4.结构体的成员可以又是一个结构体变量结构体的成员可以又是一个结构体变量结构体的成员可以又是一个结构体变量结构体的成员可以又是一个结构体变量 例如例如例如例如:struct date struct date int month;int month;int day;int day;int year;int year;struct student struct student int num;int num;char name20;char name20;char sex;char s
9、ex;int age;int age;struct date birthday;struct date birthday;char addr30;char addr30;student1,student2;student1,student2;birthdaymonth day year11.3 结构体类型变量的引用结构体类型变量的引用 先定义后使用先定义后使用先定义后使用先定义后使用 规则如下规则如下规则如下规则如下:1.1.引用方式引用方式引用方式引用方式:结构体变量名结构体变量名结构体变量名结构体变量名.成员名成员名成员名成员名 “.”:成员:成员:成员:成员(分量分量分量分量)运算符,优
10、先级为运算符,优先级为运算符,优先级为运算符,优先级为1 1 例例例例:student1.num,student1.addrstudent1.num,student1.addr注意注意注意注意:(1)(1)不能将一个不能将一个不能将一个不能将一个结构体变量结构体变量结构体变量结构体变量作为一个作为一个作为一个作为一个整体整体整体整体进行输进行输进行输进行输入,输出等。而只能对入,输出等。而只能对入,输出等。而只能对入,输出等。而只能对结构体变量成员分别结构体变量成员分别结构体变量成员分别结构体变量成员分别进行输入进行输入进行输入进行输入,输出,赋值等输出,赋值等输出,赋值等输出,赋值等.pri
11、ntf(“%d,%s,%c,%d,%f,%sn”,student1);printf(“%d,%s,%c,%d,%f,%sn”,student1);不合法不合法不合法不合法 printf(“%sn”,student1.name);printf(“%sn”,student1.name);合法合法合法合法 student1.num=10010;student1.num=10010;合法合法合法合法 (2)(2)新标准新标准新标准新标准C C中中中中,可以将一个结构体变量直接赋给可以将一个结构体变量直接赋给可以将一个结构体变量直接赋给可以将一个结构体变量直接赋给另一个具有另一个具有另一个具有另一个具有
12、相同结构的相同结构的相同结构的相同结构的结构体变量结构体变量结构体变量结构体变量.如如如如:student1=student2;student1=student2;2.2.如成员本身又属一个结构体类型。则只能对如成员本身又属一个结构体类型。则只能对如成员本身又属一个结构体类型。则只能对如成员本身又属一个结构体类型。则只能对最低最低最低最低级成员级成员级成员级成员进行赋值进行赋值进行赋值进行赋值,存取和运算等。存取和运算等。存取和运算等。存取和运算等。例例例例:student1.birthday.monthstudent1.birthday.month 不能用不能用不能用不能用student1.
13、birthdaystudent1.birthday来访问来访问来访问来访问student1 student1 中的成中的成中的成中的成员员员员birthdaybirthday。3.3.对结构体变量中的成员可以象普通变量一样进行各对结构体变量中的成员可以象普通变量一样进行各对结构体变量中的成员可以象普通变量一样进行各对结构体变量中的成员可以象普通变量一样进行各种运算。种运算。种运算。种运算。例例例例:student2.score=student1.score;student2.score=student1.score;student1.age+;student1.age+;4.4.允许使用成员和
14、结构体变量的地址。允许使用成员和结构体变量的地址。允许使用成员和结构体变量的地址。允许使用成员和结构体变量的地址。例:例:例:例:scanf(“%d”,&student1.num);scanf(“%d”,&student1.num);printf(“%o”,&student1);printf(“%o”,&student1);scanf(“scanf(“%d,%s,%c,%d,%f,%s”,&student1);%d,%s,%c,%d,%f,%s”,&student1);不合法不合法不合法不合法 结构体变量的地址主要用作函数的参数,传递结构体变量结构体变量的地址主要用作函数的参数,传递结构体变量
15、结构体变量的地址主要用作函数的参数,传递结构体变量结构体变量的地址主要用作函数的参数,传递结构体变量的地址。的地址。的地址。的地址。11.4 结构体类型变量的初始化结构体类型变量的初始化 例例例例 11.1 11.1 struct student struct student long int num;long int num;char name20;char name20;char sex;char sex;char addr20;char addr20;a=89031,“Li Lin”,M,“123 Beijing Road”;a=89031,“Li Lin”,M,“123 Beijing
16、 Road”;main()main()printf(“No.:%ldn name:%sn sex:%cn address:%sn”,printf(“No.:%ldn name:%sn sex:%cn address:%sn”,a.num,a.name,a.sex,a.addr);a.num,a.name,a.sex,a.addr);运行结果运行结果运行结果运行结果:No:89031No:89031name:Li Linname:Li Lin sex:M sex:M address:123 Beijing Roodaddress:123 Beijing Rood 11.5 结构体数组结构体数组结
17、构体数组结构体数组结构体数组结构体数组:构成数组的每一个元素都是一个结构构成数组的每一个元素都是一个结构构成数组的每一个元素都是一个结构构成数组的每一个元素都是一个结构体类型的数据。体类型的数据。体类型的数据。体类型的数据。一一一一.结构体数组的定义(结构体数组的定义(结构体数组的定义(结构体数组的定义(3 3种)种)种)种)1.1.struct student struct student int num;int num;char name20;char name20;char sex;char sex;int age;int age;float score;float score;char
18、 addr30;char addr30;struct student struct student stu3stu3;2.struct student 2.struct student int num;int num;.stu3stu3;3.struct3.struct int num;int num;.stu3stu3;numnumnamename sex sex age age score score addr addr1010110101 Li Lin Li Lin M M 18 1887.587.5103 Beijing Road103 Beijing Road1010210102 L
19、u Pin Lu Pin M M 19 19 95 95130 ShanghaiRoad130 ShanghaiRoadstu0stu0stu1stu1stu2stu2stu0stu0stu1stu1stu2stu2 6 6项项项项 6 6项项项项 6 6项项项项1010310103 Wu Li Wu Li F F 20 20 85.5 85.5100 Zhongsh Road100 Zhongsh Road结构体数组的元素在内结构体数组的元素在内结构体数组的元素在内结构体数组的元素在内存中也是连续存放的存中也是连续存放的存中也是连续存放的存中也是连续存放的二二二二.结构体数组的初始化结构体数
20、组的初始化结构体数组的初始化结构体数组的初始化 struct student struct student int num;int num;char name20;char name20;char sex;char sex;int age;int age;float score;float score;char addr30;char addr30;stu3=stu3=10101,“Li Lin”,M,18,87.5,“103 Beijing Road”10101,“Li Lin”,M,18,87.5,“103 Beijing Road”,10102,“Zhang Fun”,M,19,95,“
21、130 Shanghai Road”10102,“Zhang Fun”,M,19,95,“130 Shanghai Road”,10101,“Wang Min”,F,20,78,“1010 Zhongshan Road”10101,“Wang Min”,F,20,78,“1010 Zhongshan Road”;例例例例 11.2 11.2对候选人得票的统计程序。设有对候选人得票的统计程序。设有3个候选人,每次输入一个得个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果。票的候选人的名字,要求最后输出各人得票结果。#include#include#include#include
22、 struct personstruct person char name20;char name20;int count;int count;leader3=“Li”,0,“Zhang”,0,“Fun”,0;leader3=“Li”,0,“Zhang”,0,“Fun”,0;main()main()int i,j;int i,j;char leader_name20;char leader_name20;for(i=0;i=10;i+)for(i=0;i=10;i+)scanf(“%s”,scanf(“%s”,leader_nameleader_name););for(j=0;j3;j+)fo
23、r(j=0;j3;j+)if(if(strcmpstrcmp(leader_name,leaderj.name)=0)(leader_name,leaderj.name)=0)leaderj.count+;leaderj.count+;printf(“%n”);printf(“%n”);for(i=0;i3;i+)for(i=0;inumpnum。表示指向结构体表示指向结构体表示指向结构体表示指向结构体成员运算符。成员运算符。成员运算符。成员运算符。3.3.结构体变量中成员的引用有三种形式结构体变量中成员的引用有三种形式结构体变量中成员的引用有三种形式结构体变量中成员的引用有三种形式:(1)(
24、1)结构体变量结构体变量结构体变量结构体变量.成员名成员名成员名成员名;(2)(2)(*p).p).成员名成员名成员名成员名;(3)(3)pp成员名成员名成员名成员名;注意注意注意注意:pnpn 表示表示表示表示p p指向的结构体变量中的指向的结构体变量中的指向的结构体变量中的指向的结构体变量中的成员成员成员成员n n的的的的 值值值值。pn+pn+表示表示表示表示p p指向的结构体变量中的指向的结构体变量中的指向的结构体变量中的指向的结构体变量中的成员成员成员成员n n的的的的 值值值值。用完该值后使其加。用完该值后使其加。用完该值后使其加。用完该值后使其加 1 1。+pn+pn 表示使表示
25、使表示使表示使p p指向的结构体变量中的指向的结构体变量中的指向的结构体变量中的指向的结构体变量中的成员成员成员成员 n n的值加的值加的值加的值加1 1。(先加先加先加先加)二二二二.指向结构体数组的指针指向结构体数组的指针指向结构体数组的指针指向结构体数组的指针例例例例 11.4 11.4 指向结构体数组的指针的应用指向结构体数组的指针的应用指向结构体数组的指针的应用指向结构体数组的指针的应用 struct student struct student int num;int num;char name20;char name20;char sex;char sex;int age;int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 语言 PPT 课件 讲解 11 结构 共用
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内