?? codetc27.dat
字號:
結構體
C語言允許用戶自已指定這樣一種數據結構,它稱為結構體(structure).它相當于其他高級語言中的"記錄".
num name sex age score addr
-----------------------------------------------------
1001 Li Fun M 18 87.5 Beijing
-----------------------------------------------------
假設程序要用到上圖所表示的數據結構,但是C語言沒有提供這種現成的數據類型,因此用戶必須要在程序中建立所需要的結構體類型.
例如:
struct student
{
int num;
char name[20];
char sex;
int age;
float score;
char addr[30];
};
注意不要忽略最后的分號.上面程序設計者指定了一個新的結構體類型struct student(struct聲明結構體類型時所必須使用的關鍵字,不能省略),它向編譯系統聲明這是 一 個"結構體類型",它包括num,name,sex,age,score,addr等不同類型的數據項.應當說明struct student是一個類型名,它和系統提供的標準類 型(如int,char,float,double等)一樣具有同樣的地位和作用,都可以用來定義變量的類型,只不過結構體類型需要由用戶自己定義而已.
聲明一個結構體類型的一般形式為:
struct 結構體名
{ 成員表列 };
"結構體名"用作結構體類型的標志,它又稱"結構體標記"(structure tag).上面的結構體聲明中student就是結構體名(結構體標記).大括弧內是該結構體中的各個成員,由 它們組成一個結構體.例如,上例中的num,name,sex等都是成員.對各成員都應進行類型聲明,即: 類型名 成員名
也可以把"成員表列"稱為"域表".每一個成員也稱為結構體中的一個域.成員名定名規則與變量名同.
定義結構體類型的變量的方法
前面只是指定了一個結構體類型,它相當于一個模型,但其中并無具體數據,系統對之也不分配實際內存單元.為了能在程序中使用結構體類型的數據,應當定義結構體類型的變 量,并在其中放具體的數據.可以采用以下三種方法定義變量.如
1. 先聲明結構體類型再定義變量名
如上面已定義了一個結構體類型 struct student,可以用它來定義變量.如:
struct student student1,student2;
------------- -------- ---------
結構體類型名 結構體變量名
2. 在聲明類型的同時定義變量
例如: struct student
{
int num;
char name[20];
int age;
float score;
}student1,student2;
它的作用與第一種方法相同,即定義了兩個struct student類型的變量student1,student2.這種形式的定義的一般形式為:
struct 結構體名
{
成員表列
}變量名表列;
3. 直接定義結構類型變量
其一般形式為:
struct
{
成員表列
}變量名表列;
即不出現結構體名.
結構體變量的引用
引用結構體變量中成員的方式為: 結構體變量名.成員名
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -