C語言高級編程3-結(jié)構(gòu)體二+課件_第1頁
C語言高級編程3-結(jié)構(gòu)體二+課件_第2頁
C語言高級編程3-結(jié)構(gòu)體二+課件_第3頁
C語言高級編程3-結(jié)構(gòu)體二+課件_第4頁
C語言高級編程3-結(jié)構(gòu)體二+課件_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

C語言高級編程-結(jié)構(gòu)體二結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體數(shù)組的定義具有相同結(jié)構(gòu)體類型的結(jié)構(gòu)體變量也可以組成數(shù)組,稱它們?yōu)榻Y(jié)構(gòu)體數(shù)組。結(jié)構(gòu)體數(shù)組的每一個(gè)數(shù)組元素都是結(jié)構(gòu)體類型的數(shù)據(jù),它們都分別包括各個(gè)成員(分量)項(xiàng)。定義結(jié)構(gòu)體數(shù)組的方法和定義結(jié)構(gòu)體變量的方法相仿,只需說明其為數(shù)組即可??梢圆捎萌N方法:結(jié)構(gòu)體數(shù)組1.先定義結(jié)構(gòu)體類型,再用它定義結(jié)構(gòu)體數(shù)組。結(jié)構(gòu)體數(shù)組的定義形式如下:struct結(jié)構(gòu)體名 {

成員表列;};

struct結(jié)構(gòu)體名例如:structstudent{charname[20];charsex;intage;charaddr[20];};structstudentstu[3];

結(jié)構(gòu)體數(shù)組2.在定義結(jié)構(gòu)體類型同時(shí)定義結(jié)構(gòu)體數(shù)組。結(jié)構(gòu)體數(shù)組的定義形式如下:struct結(jié)構(gòu)體名 {

成員表列;}數(shù)組名[元素個(gè)數(shù)];例如:structstudent{charname[20];charsex;intage;charaddr[20];}stu[3];

結(jié)構(gòu)體數(shù)組3.直接定義結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體數(shù)組的定義形式如下:struct//沒有結(jié)構(gòu)體名{

成員表列;

}數(shù)組名[元素個(gè)數(shù)];

例如:struct{charname[20];charsex;intage;charaddr[20];}stu[3];

結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體數(shù)組的初始化 結(jié)構(gòu)體數(shù)組在定義的同時(shí)也可以進(jìn)行初始化,并且與結(jié)構(gòu)體變量的初始化規(guī)定相同,只能對全局的或靜態(tài)存儲(chǔ)類別的結(jié)構(gòu)體數(shù)組初始化。 結(jié)構(gòu)體數(shù)組初始化的一般形式是: struct結(jié)構(gòu)體名 {

成員列表; }; struct結(jié)構(gòu)體名數(shù)組名[元素個(gè)數(shù)]={初始數(shù)據(jù)表};結(jié)構(gòu)體數(shù)組或者: struct結(jié)構(gòu)體名 {

成員表列; }數(shù)組名[元素個(gè)數(shù)]={初始數(shù)據(jù)表}; 由于結(jié)構(gòu)體變量是由若干不同類型的數(shù)據(jù)組成,而結(jié)構(gòu)體數(shù)組又是由若干結(jié)構(gòu)體變量組成。所以要特別注意包圍在大括號中的初始數(shù)據(jù)的順序,以及它們與各個(gè)成員項(xiàng)間的對應(yīng)關(guān)系。8結(jié)構(gòu)體數(shù)組結(jié)構(gòu)體數(shù)組的使用 一個(gè)結(jié)構(gòu)體數(shù)組的元素相當(dāng)于一個(gè)結(jié)構(gòu)體變量,因此前面介紹的有關(guān)結(jié)構(gòu)體變量的規(guī)則也適應(yīng)于結(jié)構(gòu)體數(shù)組元素。以上面定義的結(jié)構(gòu)體數(shù)組stu[3]為例說明對結(jié)構(gòu)體數(shù)組的引用: (1)引用某一元素中的成員。 若要引用數(shù)組第二個(gè)元素的name成員,則可寫為:

stu[1].name

結(jié)構(gòu)體數(shù)組(2)可以將一個(gè)結(jié)構(gòu)體數(shù)組元素值賦給同一結(jié)構(gòu)體類型的數(shù)組中的另一個(gè)元素,或賦給同一類型的變量。如:

structstudentstu[3],student1;

現(xiàn)在定義了一個(gè)結(jié)構(gòu)體類型的數(shù)組,它有3個(gè)元素,又定義了一個(gè)結(jié)構(gòu)體類型變量student1,則下面的賦值是合法的。

student1=stu[0]; stu[0]=stu[1];

stu[1]=student1;結(jié)構(gòu)體數(shù)組(3)不能把結(jié)構(gòu)體數(shù)組元素作為一個(gè)整體直接進(jìn)行輸入輸出。如:

printf(“…”,stu[0]);

scanf(“…”,&stu[0]);

都是錯(cuò)誤的。 只能以單個(gè)成員為對象進(jìn)行輸入輸出,如:

scanf(“…”,stu[0].name); scanf(“…”,&stu[1].num); printf(“…”,stu[0].name); printf(“…”,stu[1].num);結(jié)構(gòu)體與指針結(jié)構(gòu)體指針

可以設(shè)定一個(gè)指針變量用來指向一個(gè)結(jié)構(gòu)體變量。此時(shí)該指針變量的值是結(jié)構(gòu)體變量的起始地址,該指針稱為結(jié)構(gòu)體指針。結(jié)構(gòu)體指針與前面介紹的各種指針變量在特性和方法上是相同的。與前述相同,在程序中結(jié)構(gòu)體指針也是通過訪問目標(biāo)運(yùn)算“*”訪問它的對象。結(jié)構(gòu)體指針在程序中的一般定義形式為:

struct結(jié)構(gòu)體名*結(jié)構(gòu)指針名; 其中的結(jié)構(gòu)體名必須是已經(jīng)定義過的結(jié)構(gòu)體類型。結(jié)構(gòu)體與指針例如,

對于上一節(jié)中定義的結(jié)構(gòu)體類型structstudent,可以說明使用這種結(jié)構(gòu)體類型的結(jié)構(gòu)指針如下:

structstudent*pstu;

其中pstu是指向structstudent結(jié)構(gòu)體類型的指針。結(jié)構(gòu)體指針的說明規(guī)定了它的數(shù)據(jù)特性,并為結(jié)構(gòu)體指針本身分配了一定的內(nèi)存空間。但是指針的內(nèi)容尚未確定,即它指向隨機(jī)的對象。結(jié)構(gòu)體與指針

當(dāng)表示指針變量p所指向的結(jié)構(gòu)體變量中的成員時(shí),“(*結(jié)構(gòu)體指針名).成員名”這種表示形式總是需要使用圓括號,顯得很不簡煉。因此,對于結(jié)構(gòu)體指針指向的結(jié)構(gòu)體成員項(xiàng),給出了另外一種簡潔的表示方法,如下表示:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論