數組是一種組合類型變量,它是用一個變量定義邏輯上相關的一批數據,使每個分量具有相同的名字、不同的下標,從而組織有效的循環,但是數組有一個重要的特性,即一個數組變量包含的所有元素都必須為同一類型。比如,一個整型數組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;
};