一、结构体和联合体
结构体: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; //正确
二、指针函数和函数指针
指针函数:返回值为指针的函数
格式:类型说明符 * 函数名(参数)
函数指针:指向函数的指针
格式:类型说明符 (*函数名)(参数)