1.結構體 struct
格式:
struct Student{
char *name;
int age;
float height;
};
struct Student s;//定義一個結構體變量
//給結構體成員賦值
s.name="kristy";
s.age=22;
s.height=1.63;
可連寫並省略結構體名
struct {
char *name;
int age;
float height;
} s;
2.枚舉 enum
格式:
enum Season{spring,summer,autumn,winter};
enum Season s;//定義一個枚舉變量
可連寫並省略枚舉名
<span style="font-size:18px;">enum {spring,summer,autumn,winter} s;</span>
3.typedef
作用:爲各種數據類型起別名,可使代碼變得簡潔。
typedef與#define的區別
1) #define是預處理指令,在編譯預處理時進行簡單的替換,不作正確性檢查,不關含義是否正確照樣帶入,只有在編譯已被展開的源程序時纔會發現可能的錯誤並報錯。 2)typedef是在編譯時處理的。它在自己的作用域內給一個已經存在的類型一個別名。3)#define後面無需寫“;” typedef需要寫“;”
<span style="font-size:18px;">#define String1 char * // </span><span style="font-size:14px;">遇到String1 替換爲 char *</span><span style="font-size:18px;">
typedef char *String2;// </span><span style="font-size:14px;">用String2 <span style="font-family: Arial, Helvetica, sans-serif;">表示char *</span></span><span style="font-size:18px;">
</span><span style="font-size:18px;">
int main(int argc, const char * argv[]) {
String1 str1, str2;
String2 str3, str4;
return 0;
}</span>
str1,str3,str4爲指針變量,str2爲char類型變量