一、結構體和聯合體
結構體:struct
內部各成員共組爲一個數據類型
各成員擁有各自的內存空間,總內存爲所有成員內存之和
例如:
<span style="white-space:pre"> </span>typedef struct Student {
string name;
int age;
IDcard id; //在下文中定義
}STUDENT a, b;
a.name = "zhangsan";
<span style="white-space:pre"> </span>a.age = 20;
<span style="white-space:pre"> </span>a.id.hasId = false;
聯合體:union
內部各成員只能選擇一項使用
各成員同時共享一塊內存空間,總內存爲成員中最大者的內存
例如:
<span style="white-space:pre"> </span>typedef union IDcard {
bool hasId; //是否具有Id 布爾值數據類型:只能取true或false
long idNum;
}ID_CARD id1, id2;
id1.idNum = 2015001;
// id1.hasId = false; //此處錯誤,聯合體不能同時擁有兩個成員
id1.hasId = false; //正確
二、指針函數和函數指針
指針函數:返回值爲指針的函數
格式:類型說明符 * 函數名(參數)
函數指針:指向函數的指針
格式:類型說明符 (*函數名)(參數)