资源描述:
《电脑知识包括c语言3》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、17、结构体结构是由基本数据类型构成的、并用一个标识符来命名的各种变量的组合。结构中可以使用不同的数据类型。一、结构说明和结构变量定义在TurboC中,结构也是一种数据类型,可以使用结构变量,因此,象其它类型的变量一样,在使用结构变量时要先对其定义。定义结构变量的一般格式为:struct结构名{类型变量名;类型变量名;...}结构变量;结构名是结构的标识符不是变量名。类型为第二节中所讲述的五种数据类型(整型、浮点型、字符型、指针型和无值型)。构成结构的每一个类型变量称为结构成员,它象数组的元素一样,但数组中元素
2、是以下标来访问的,而结构是按变量名字来访问成员的。下面举一个例子来说明怎样定义结构变量。structstring{charname[8];intage;charsex[4];chardepart[20];floatwage1,wage2,wage3;}person;这个例子定义了一个结构名为string的结构变量person,如果省略变量名person,则变成对结构的说明。用已说明的结构名也可定义结构变量。这样定义时上例变成:structstring{charname[8];intage;charsex[4];
3、chardepart[20];floatwage1,wage2,wage3;};structstringperson;如果需要定义多个具有相同形式的结构变量时用这种方法比较方便,它先作结构说明,再用结构名来定义变量。例如:structstringTianyr,Liuqi,...;如果省略结构名,则称之为无名结构,这种情况常常出现在函数内部,用这种结构时前面的例子变成:struct{charname[8];intage;charsex[4];chardepart[20];floatwage1,wage2,wage
4、3;}Tianyr,Liuqi;二、结构变量的使用结构是一个新的数据类型,因此结构变量也可以象其它类型的变量一样赋值、运算,不同的是结构变量以成员作为基本变量。结构成员的表示方式为:结构变量.成员名如果将结构变量.成员名看成一个整体,则这个整体的数据类型与结构中该成员的数据类型相同,这样就可象前面所讲的变量那样使用。下面这个例子定义了一个结构变量,其中每个成员都从键盘接收数据,然后对结构中的浮点数求和,并显示运算结果。请注意这个例子中不同结构成员的访问。#includemain(){struct{/*定义一个结
5、构变量*/charname[8];intage;charsex[4];chardepart[20];floatwage1,wage2,wage3;}a;floatwage;charc='Y';while(c=='Y'
6、
7、c=='y')/*判断是否继续循环*/{printf(Name:);scanf(%s,a.name);/*输入姓名*/printf(Age:);scanf(%d,&a.wage);/*输入年龄*/printf(Sex:);scanf(%s,a.sex);printf(Dept:);scanf
8、(%s,a.depart);printf(Wage1:);scanf(%f,&a.wage1);/*输入工资*/printf(Wage2:);scanf(%f,&a.wage2);printf(Wage3:);scanf(%f,&a.wage3);wage=a.wage1+a.wage2+a.wage3;printf(Thesumofwageis%6.2f,wage);printf(Continue?);c=getche();}}三、结构数组和结构指针结构是一种新的数据类型,同样可以有结构数组和结构指针。1
9、.结构数组结构数组就是具有相同结构类型的变量集合。假如要定义一个班级40个同学的姓名、性别、年龄和住址,可以定义成一个结构数组。如下所示:struct{charname[8];charsex[4];intage;charaddr[40];}student[40];也可定义为:structstring{charname[8];charsex[4];intage;charaddr[40];};structstringstudent[40];需要指出的是结构数组成员的访问是以数组元素为结构变量的,其形式为:结构数组元
10、素.成员名例如:student[0].namestudent[30].age实际上结构数组相当于一个二维构造,第一维是结构数组元素,每个元素是一个结构变量,第二维是结构成员。注意:结构数组的成员也可以是数组变量。例如:structa{intm[3][5];floatf;chars[20];}y[4];为了访问结构a中结构变量y[2]的这个变量,可写成y[2].m[1][4]2.结构指针