一、結構 a)、結構定義 一般形式: Struct 結構名 { 類型名 成員名; }; Ex: Struct student { Int number; Char name[10]; Char sex; Int age; Char address[50]; Float score[3]; }; b)、結構變量的定義 1、先定義結構類型,再定義該類型數據。 Ex: Struct 結構名 { 結構成員表 }; Struct 結構名 變量名列表; 2、在定義結構類型的時候,同時定義若干個此類型的變量。 Ex: Struct 結構名 { 結構成員表 } 變量表; 3、不定義結構類型標識符(結構名),直接定義結構變量。 Ex: Struct { 結構成員表 } 變量表; c)、結構類型變量成員的引用 引用結構變量x的成員有以下3種方法(p為結構指針變量,指向x): 1、x.成員名 2、(*p).成員名 3、p->成員名 d)、Attention 1、結構類型定義只是指定了一種類型,與int、float、char地位相同,無具 體 數據,系統不分配內存 2、結構成員可以是任何基本數據類型,也可以是指針等。 3、結構類型可以嵌套定義,但不能遞歸定義,即允許一個或多個成員類型 定 義為其他結構類型。 Ex: Struct student { Int number; Char name[10]; Struct data birthday; //birthday成員的類型為結構 data 類型 } 二、枚舉 a)、對枚舉元素按常量處理,不能對它們賦值。(注意區分枚舉元素和枚舉變 量) Ex: Enum weekday{sum ,mon, tue, wed, thu, fri, sat}; Sum=0; //sum是枚舉元素,算常量,不能被賦值 b)、枚舉變量具有默認值,它們依次為:0,1,2,3,。。。例如上例中sum的值 為0、mon為1. c)、也可以在聲明的時候另行定義枚舉元素的值 Ex: Enum weekday{sum=7 ,mon=1, tue, wed, thu, fri, sat}; d)、整數值不能直接賦給枚舉變量;如需將整數賦值給枚舉變量,應進行強 制類型轉換。 Ex: Weekday day; Day=(weekday)1; e)、枚舉變量的取值范圍只能是枚舉元素 三、typedef聲明 語法形式: typedef 已有類型名 新類型名表; 其中,新類型名表可以有多個標識符,他們之間以逗號隔開。 Ex: Typedef double area, volume; Typedef int natural; Natural i1, i2; Area a; Volume v; 四、宏定義 a)、"\"與一個較長占多行的宏 宏定義中允許包含兩行以上命令的情形,此時必須在最右邊加上"\"且該行"\"后不能再有任何字符,連注釋部分都不能有,下面的每行最后的一定要是"\","\"后面加一個空格都會報錯,更不能跟注釋。 Ex: #define exchange(a,b) {\ int t;\ t=a;\ a=b;\ b=t;\ }
|