C語言復(fù)習(xí)4----結(jié)構(gòu)體.ppt

C語言復(fù)習(xí)4----結(jié)構(gòu)體.ppt

ID:57052160

大小:142.00 KB

頁數(shù):27頁

時(shí)間:2020-07-29

C語言復(fù)習(xí)4----結(jié)構(gòu)體.ppt_第1頁
C語言復(fù)習(xí)4----結(jié)構(gòu)體.ppt_第2頁
C語言復(fù)習(xí)4----結(jié)構(gòu)體.ppt_第3頁
C語言復(fù)習(xí)4----結(jié)構(gòu)體.ppt_第4頁
C語言復(fù)習(xí)4----結(jié)構(gòu)體.ppt_第5頁
資源描述:

《C語言復(fù)習(xí)4----結(jié)構(gòu)體.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。

1、C語言復(fù)習(xí)4----結(jié)構(gòu)體結(jié)構(gòu)體類型概述前面章節(jié)學(xué)過的數(shù)組是一組同類型數(shù)據(jù)的集合。一個(gè)數(shù)組只能存放同一種類型的數(shù)據(jù),不同類型的數(shù)據(jù)不能放在一個(gè)數(shù)組。而結(jié)構(gòu)體由不同的數(shù)據(jù)類型組成,例如學(xué)生的姓名、學(xué)生證號、年齡、手機(jī)號碼等,這就需要結(jié)構(gòu)體數(shù)據(jù)類型。結(jié)構(gòu)體不是一種新的數(shù)據(jù)類型,而是把其它不同的數(shù)據(jù)類型組合起來,是由其它類型構(gòu)造出來,因此稱為構(gòu)造類型。1)結(jié)構(gòu)體由若干個(gè)數(shù)據(jù)項(xiàng)組成,每個(gè)數(shù)據(jù)項(xiàng)稱為結(jié)構(gòu)體的一個(gè)成員,每個(gè)數(shù)據(jù)項(xiàng)屬于一種已有的數(shù)據(jù)類型。2)結(jié)構(gòu)體類型是由不同類型的數(shù)據(jù)項(xiàng)組成的復(fù)合類型。結(jié)構(gòu)體類型的定義格式:struct結(jié)構(gòu)體類型名{數(shù)據(jù)類型1成員1名;數(shù)據(jù)類型2成員2名

2、;...數(shù)據(jù)類型n成員n名;};結(jié)構(gòu)體類型成員列表定義一個(gè)學(xué)生的結(jié)構(gòu)體例如定義一個(gè)學(xué)生的結(jié)構(gòu)體:structstudent{intnumber;charname[15];charsex;intage;}成員又稱為成員變量,是結(jié)構(gòu)體中若干個(gè)數(shù)據(jù)類型,每個(gè)成員須標(biāo)明數(shù)據(jù)類型。結(jié)構(gòu)體類型的嵌套結(jié)構(gòu)體成員可以是任意的數(shù)據(jù)類型,還可以是其它的結(jié)構(gòu)體類型,這時(shí)稱為結(jié)構(gòu)體類型的嵌套。structdate{intyear;intmonth;intday;};structperson{intnumber;charname[20];charsex;structdatebirthday;};結(jié)構(gòu)

3、體變量的定義在定義了結(jié)構(gòu)體之后,結(jié)構(gòu)體變量可以用三種方式定義。方式1:先聲明結(jié)構(gòu)體類型,再定義變量名,分別定義。structstudent{intnumber;charname[15];charsex;intage;}用上面定義的結(jié)構(gòu)體structstudent來定義結(jié)構(gòu)體變量structstudentstu1,stu2;定義了stu1和stu2為structstudent類型的變量。定義結(jié)構(gòu)體變量之后,C系統(tǒng)就為它們分配內(nèi)存單元。方式2:結(jié)構(gòu)體類型和結(jié)構(gòu)體變量名一起定義structstudent{intnumber;charname[15];charsex;intage;

4、}stu1,stu2;方式3:省略結(jié)構(gòu)體類型名,直接定義結(jié)構(gòu)體變量struct{intnumber;charname[15];charsex;intage;}stu1,stu2;結(jié)構(gòu)體變量的初始化定義了結(jié)構(gòu)體變量之后,就可對變量賦值或存取。對于結(jié)構(gòu)體和結(jié)構(gòu)體變量名分別定義,可以這樣來初始化:structstudentstu1={001,'david','M',25,};結(jié)構(gòu)體和結(jié)構(gòu)體變量名一起定義,可以這樣來初始化:structstudent{intnumber;charname[15];charsex;intage;}stu1={001,'david','M',25,};

5、結(jié)構(gòu)體變量的引用定義了結(jié)構(gòu)體變量之后,就可以在程序中引用它了。能夠引用的對象有兩個(gè):結(jié)構(gòu)體變量名代表變量整體,成員名代表變量的各個(gè)成員。引用時(shí)注意:1)不能將一個(gè)結(jié)構(gòu)體變量作為一個(gè)整體進(jìn)行輸入和輸出,如:printf("%d,%s,%c,%d",stu1)--------錯(cuò)誤只能對結(jié)構(gòu)體的成員變量輸入輸出。引用結(jié)構(gòu)體變量中的成員變量的方式為:結(jié)構(gòu)體變量名.成員變量如:stu1.name成員本身又是一個(gè)結(jié)構(gòu)體structdate{intyear;intmonth;intday;};strcutstu{intnumber;charname[15];charsex;struc

6、tdatebirthday;/*成員本身又是一個(gè)結(jié)構(gòu)體*/}student;2)如果成員本身又是一個(gè)結(jié)構(gòu)體,要一級一級找到最低的成員變量,只能對最低的成員進(jìn)行賦值或運(yùn)算??梢赃@樣來引用:student.birthday.month3)結(jié)構(gòu)體變量可以整體賦值。例如stu1=stu2,把變量stu2的所有成員的值一一賦值給變量stu1,但是這兩個(gè)結(jié)構(gòu)體變量的類型必須完全相同。4)結(jié)構(gòu)體變量占據(jù)的一段內(nèi)存的首地址稱為該結(jié)構(gòu)體變量的地址,其每個(gè)成員占據(jù)的若干個(gè)單元的首地址稱為該成員的地址。結(jié)構(gòu)體數(shù)組以上定義的存放學(xué)生信息的結(jié)構(gòu)體類型structstudent,可以定義1個(gè)變量stu

7、,但是只能存放stu的1個(gè)學(xué)生的信息。如果為了能放10個(gè)學(xué)生信息就要定義10個(gè)結(jié)構(gòu)體變量,不現(xiàn)實(shí)。為了處理多個(gè)學(xué)生信息,就要用到結(jié)構(gòu)體數(shù)組。對于結(jié)構(gòu)體數(shù)組來說,其中每一個(gè)單元都是一個(gè)結(jié)構(gòu)體類型的數(shù)據(jù)。結(jié)構(gòu)體數(shù)組的定義結(jié)構(gòu)體數(shù)組的定義也可以采用以下3種方式之一:1)定義結(jié)構(gòu)體類型,然后通過結(jié)構(gòu)體類型來定義結(jié)構(gòu)體數(shù)組structstu{longnum;charname[10];charsex;intage;};structstustudents[20]這里結(jié)構(gòu)體數(shù)組students有20個(gè)單元,每一個(gè)單元都是一個(gè)str

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。