资源描述:
《结构体与共用体》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第十一章结构体与共用体结构的基本概念结构数组111.1结构体概述numnamesexagescoreaddr10010LiFengM1887.5Beijing10011LiuJingW1890Nanjing10012SuRuiW1885Xuzhou用什么样的数据类型来存储表中每一行数据呢?2顺序号()书名()书价()管藏数量()作者姓名()出版社()出版日期()长整型(long)字符串实型(float)整型(int)字符串字符串(待定)数据项名类型怎样描述图书管中某本书籍的各项数据这里需要将不同类型的数据组合成一个整体
2、,可以声明一个新的构造型数据类型:11.2结构体与结构体类型变量3实际上,这就声明了一个结构类型:structbooks为此,我们可有如下定义(暂不考虑出版日期):structbooks{longnum;charname[50];floatprice;inttotal;charauthor[20];charpubass[50];};将几种不同类型的数据组合成一个整体。4结构中的成员也可以是结构类型变量structdate{intyear,month,day;};现在,可以重新定义结构类型structbooks如下:5str
3、uctdate{intyear,month,day;};structbooks{longnum;charname[50];floatprice;inttotal;charauthor[20];charpubass[50];structdatepubdata;};6形式一先声明类型,再定义变量:定义结构类型变量的方法:structdate{intyear,month,day;};structbooks{longnum;charname[50];floatprice;inttotal;charauthor[20];charp
4、ubass[50];structdatepubdata;};再用已声明的结构类型定义结构变量:structbooksbook1,book2,book3;7形式二、结构类型和结构变量一起定义:structbooks{longnum;charname[50];floatprice;inttotal;charauthor[20];charpubass[50];structdatepubdata;}book1,book2,book3;8形式三、直接定义结构类型变量,省略结构名:如:struct{longnum;ch
5、arname[50];floatprice;inttotal;charauthor[20];charpubass[50];structdatepubdata;}book1,book2,book3;无结构名9关于结构体类型的说明类型与变量是不同的概念,不能对类型赋值,只能对变量赋值,结构体类型的地位与int,float等数据类型的地位相同,只是前者必须定义,后者不需定义。对结构体类型变量的定义方法与前面学过的数据类型的变量的定义方法相同。可以单独引用结构体变量中的各个成员,它们相当于普通变量。成员也可以是一个结构体变
6、量。10由结构体变量名引用其成员的标记形式为:结构体变量名.成员名其中圆点运算符是成员运算符,它的运算级别最高结构变量名•成员名如book1•num=7387221;结构变量的引用11结构体型变量可以整体引用来赋值:如book2=book1;即将变量book1的所有成员的值一一赋给变量book2的各成员。结构体型变量不可进行整体的输入输出,如:printf(″%s″,book1);是错误的。结构体型变量只能对逐个成员进行输入或输出。12若结构体定义是嵌套的,则只能引用最低级的成员(用若干“.”运算符,逐级引用到最低级)。如
7、:book1•pubdata•year=1993;book1•pubdata•month=9;book1•pubdata•day=30;不可对book1•pubdata进行操作,因其不是最低级。对成员变量可以像普通变量一样进行各种运算如:book2•num=book1•num;book1•price=book2•price+5;book1•total++;成员运算符的优先级最高13结构变量的初始化1、结构变量的初始化下例对类型为structdata的结构变量workday和birthday作初始化:structbooksb
8、ook={7387221,“Clanguage”,17.8,20,“Tanhaoqiang”,“Qinghuauniversity”,{1997,7,1}};structdataworkday={1998,11,22},birthday={1980,10,19};成员类型更复杂的结构变量怎样作初始化?对