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