资源描述:
《C语言程序设计与应用 双色印刷 教学课件 张小东 郑宏珍 第7章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章结构体结构体类型的定义结构体是一种构造数据类型,它由若干成员组成。每一个成员既可以是一个基本数据类型也可以是一个构造数据类型struct结构体名{类型1成员1;类型2成员2;......类型n成员n;};结构体类型的定义structstudent{charcNum;charcName[20];intnAge;charcSex;};结构体关键字结构体名分号是结束标志,不能省略结构体的4个成员结构体嵌套定义structdate{intnYear;intnMonth;intnDay;};structstudent{charcNum;charcName[2
2、0];structdatedBirthday;};structstudent{charcNum;charcName[20];structdate{intnYear,nMonth,nDay;}dBirthday;};等价7.1.2结构体变量(1)结构体变量的定义①先定义结构体类型,再声明结构体变量。其一般形式为:struct结构体名结构体变量名;如,structstudent{charcNum;charcName[20];intnAge;charcSex;};structstudentsStu;struct结构体名结构体变量名;②定义结构体类型的同时定义结
3、构体变量。其一般形式为:如,structstudent{charcNum;charcName[20];intnAge;charcSex;}sStu;struct结构体名{成员列表}变量列表;③直接定义无结构名的结构体类型变量如,struct{charcNum;charcName[20];intnAge;charcSex;}sStu;struct{成员列表}变量列表;(2)结构体变量的初始化以上三种方式声明结构体变量的同时都可以进行初始化。初始化方式为:将所赋初值按顺序放在一对大括号内,下面以第一种定义结构体变量的方式为例来说明初始化问题。如,struct
4、student{charcNum;charcName[20];intnAge;charcSex;};structstudentsStu={'0804101',"Zhanghua",20,'M'};注意:(1)如下初始化形式是非法的。structstudentsStu;sStu={0501,"Zhaolin",20,’M’};(2)所赋初值与各成员数据类型要匹配或兼容。(3)结构体变量成员的引用结构体变量成员的引用形式如下:结构体变量名.成员名实心点“.”称为成员运算符。例如:sStu.cNumsStu.cName例7-1定义并初始化学生结构体变量,然后输
5、出变量的各成员值。#includestructstudent{char*pcNum;char*pcName;charcSex;structdate{intnYear,nMonth,nDay;}dBirth;floatfScore;}sStu1={"0804101","Mr.Zhang",'M',1979,9,1,80},sStu2;voidmain(){sStu2=sStu1;/*同类型的结构体变量之间进行赋值运算*/printf("Number=%s",sStu2.pcNum);printf("Name=%s",sStu2.p
6、cName);printf("Born=%d年",sStu2.dBirth.nYear);printf("%d月",sStu2.dBirth.nMonth);printf("%d日",sStu2.dBirth.nDay);printf("Sex=%c",sStu2.cSex);printf("Score=%.1f",sStu2.fScore);}7.1.3结构体数组在实际应用中,经常用结构体数组来表示具有相同数据结构的一个群体。如,structstudent{char*pcNum;char*pcName;charcSex;structdate
7、{intnYear,nMonth,nDay;}dBirth;floatfScore;};结构体数组sStu,共有5个元素:sStu[0]—sStu[4]。在声明的时候还完成了对数组的初始化工作。structstudentsStu[5]={{"0804101","Mr.Zhang",'M',1979,9,1,80},{"0804102","Mr.Wang",'W',1980,8,1,70},{"0804103","Mr.Li",'M',1978,7,1,55},{"0804104","Mr.Zhao",'W',1977,6,1,65},{"0804105"
8、,"Mr.Zhou",'M',1981,5,1,45}};例7-2计算5名学生的