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