C語言結(jié)構(gòu)體類型
C語言中允許用戶自己建立由不同類型數(shù)據(jù)組成的組合型的數(shù)據(jù)結(jié)構(gòu),它稱為結(jié)構(gòu)體。在其他一些高級語言中稱“記錄”。
一般形式
struct 結(jié)構(gòu)體名
{成員表列};
結(jié)構(gòu)體類型的名字是由一個關(guān)鍵字struct和結(jié)構(gòu)體名組成而成的,結(jié)構(gòu)體名是用戶指定的,又稱“結(jié)構(gòu)體標(biāo)記”,以區(qū)別于其他結(jié)構(gòu)體類型。
花括號內(nèi)是該結(jié)構(gòu)體所包括的子項(xiàng),稱為結(jié)構(gòu)體的成員,對各個成員都應(yīng)該進(jìn)行類型聲明。
即
類型名 成員名
成員表列也稱為域表,每一個成員是結(jié)構(gòu)體中的一個域,成員命名規(guī)則與變量名相同。
C語言如何定義結(jié)構(gòu)體類型變量
先聲明結(jié)構(gòu)體類型,再定義該類型的變量
- 在定義了結(jié)構(gòu)體變量后,系統(tǒng)會為之分配內(nèi)存單元。根據(jù)結(jié)構(gòu)體類型中包含的成員情況,在Visual C++中占63個字節(jié)。
- 這種聲明方式是聲明類型和定義變量分離,在聲明類型后可以隨時定義變量,比較靈活。
在聲明類型的同時定義變量
- 一般形式
struct 結(jié)構(gòu)體名
{
成員表列
}變量名表列;
- 聲明類型和定義變量放在一起進(jìn)行,能直接看到結(jié)構(gòu)體的結(jié)構(gòu),比較直觀。
- 在寫小程序時用此方式比較方便,但寫大程序時,往往要求對類型的聲明和對變量的定義分別放在不同的地方 ,以使程序結(jié)構(gòu)清晰,便于維護(hù)。
不指定類型名而直接定義結(jié)構(gòu)體類型變量
- 一般形式
struct
{
成員表列
}變量名表列;
-
指定了一個無名的結(jié)構(gòu)體類型,它沒有名字。
顯然不能再以此結(jié)構(gòu)體類型去定義其他變量。
結(jié)構(gòu)體類型與結(jié)構(gòu)體變量是不同的概念,不要混同,只能對變量賦值、存取或運(yùn)算,而不能對一個類型賦值、存取或運(yùn)算。
結(jié)構(gòu)體類型中的成員名可以與程序中的變量名相同,但二者不代表同一對象,對結(jié)構(gòu)體變量中的成員,可以單獨(dú)使用,它的作用與地位相當(dāng)于普通變量。
C語言結(jié)構(gòu)體變量的初始化和引用
在定義結(jié)構(gòu)體變量時可以對它的成員初始化,初始化列表是用花括號括起來的的一些常量,這些常量依次賦給結(jié)構(gòu)體變量中的各成員。
可以引用結(jié)構(gòu)體變量中成員的值,引用方式為:
結(jié)構(gòu)體變量名.成員名
“.”是成員運(yùn)算符,它在所有的運(yùn)算符中優(yōu)先級最高,如果成員本身又屬于一個結(jié)構(gòu)體類型,則要用若干個成員運(yùn)算符,一級一級地找到最低的一級的成員。
對結(jié)構(gòu)體變量的成員可以像普通變量一樣進(jìn)行各種運(yùn)算,同類的結(jié)構(gòu)體變量可以互相賦值。
可以引用結(jié)構(gòu)體變量的成員的地址,也可以引用結(jié)構(gòu)體變量的地址,結(jié)構(gòu)體變量的地址主要用作函數(shù)參數(shù),傳遞結(jié)構(gòu)體變量的地址。
C語言結(jié)構(gòu)體變量案例
#include
int main()
{
struct Student{ //定義學(xué)生類結(jié)構(gòu)體
int stuId=10;//學(xué)號
char sex='F';//性別
}stu1;
printf("%d\\n",stu1.stuId);//輸出學(xué)號
printf("%c\\n",stu1.sex);//輸出性別
return 0;
}
編譯運(yùn)行結(jié)果:
10
F
--------------------------------
Process exited after2.405 secondswith return value0
請按任意鍵繼續(xù). . .
-
C語言
+關(guān)注
關(guān)注
180文章
7581瀏覽量
135543 -
C++
+關(guān)注
關(guān)注
21文章
2090瀏覽量
73404 -
結(jié)構(gòu)體
+關(guān)注
關(guān)注
1文章
127瀏覽量
10812
發(fā)布評論請先 登錄
相關(guān)推薦
評論