資源描述:
《結構體與共用體》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。
1、第十一章結構體與共用體結構的基本概念結構數(shù)組111.1結構體概述numnamesexagescoreaddr10010LiFengM1887.5Beijing10011LiuJingW1890Nanjing10012SuRuiW1885Xuzhou用什么樣的數(shù)據(jù)類型來存儲表中每一行數(shù)據(jù)呢?2順序號()書名()書價()管藏數(shù)量()作者姓名()出版社()出版日期()長整型(long)字符串實型(float)整型(int)字符串字符串(待定)數(shù)據(jù)項名類型怎樣描述圖書管中某本書籍的各項數(shù)據(jù)這里需要將不同類型的數(shù)據(jù)組合成一個整體
2、,可以聲明一個新的構造型數(shù)據(jù)類型:11.2結構體與結構體類型變量3實際上,這就聲明了一個結構類型:structbooks為此,我們可有如下定義(暫不考慮出版日期):structbooks{longnum;charname[50];floatprice;inttotal;charauthor[20];charpubass[50];};將幾種不同類型的數(shù)據(jù)組合成一個整體。4結構中的成員也可以是結構類型變量structdate{intyear,month,day;};現(xiàn)在,可以重新定義結構類型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等數(shù)據(jù)類型的地位相同,只是前者必須定義,后者不需定義。對結構體類型變量的定義方法與前面學過的數(shù)據(jù)類型的變量的定義方法相同??梢詥为氁媒Y構體變量中的各個成員,它們相當于普通變量。成員也可以是一個結構體變
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++;成員運算符的優(yōu)先級最高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};成員類型更復雜的結構變量怎樣作初始化?對