正文 第39章 結構體與共用體1(1 / 2)

數組是一種組合類型變量,它是用一個變量定義邏輯上相關的一批數據,使每個分量具有相同的名字、不同的下標,從而組織有效的循環,但是數組有一個重要的特性,即一個數組變量包含的所有元素都必須為同一類型。比如,一個整型數組inta[80]所包含的80個元素均為int型變量。而實際生活中處理的數據往往是由多個不同類型的數據組成的。例如,有一份學生情況登記表,其中記錄了1000個學生的基本信息,每個學生的信息都用一行記錄來表示,每行記錄都包含以下五項數據:學號、姓名、性別、出生年月、籍貫。

由於結構體類型不是C語言提供的標準類型,為了能夠使用結構體類型,必須先定義結構體類型,描述構成結構體類型的數據項(也稱成員),以及各成員的類型。

其定義的一般形式為:

struct結構體類型名

{數據類型成員名1;

數據類型成員名2;

數據類型成員名n;};

如:

structperson

{charname[10];

charsex;

intage;

intstature;};

以上定義了一個結構體類型person,該類型由4個成員構成。

說明:

(1)struct是C語言的關鍵字,不能省略。

(2)結構體類型名為用戶自定義標識符,struct和結構體類型名一起構成了結構體類型標誌。

(3)結構體的所有成員都必須放在一對花括號“{}”中。

(4)同一結構體中不同的成員不能使用相同的名字,但不同結構體類型中的成員名可以相同,結構體成員的名字也可以與程序中的其他變量同名,兩者互不影響。

(5)花括號後麵的分號“;”不能省略。

(6)在程序中,定義結構體類型並不會讓係統為該結構體類型分配內存空間,它僅僅是指定了一種特定的數據構造類型。

(7)結構體類型的成員除了可以使用基本數據類型之外,還可以是其他類型,如數組作為成員。

(8)結構體可以嵌套定義,即結構體的成員可以是另外一個結構體類型。

如:

structdate

intyear;

intmonth;

intday;

};

structstudent

intno;

charname[10];

charsex;

structdatebirthday;

};