如何理解联合体,我们通过以下的代码可以清晰明白:
#include "stdlib.h"
#include "stdio.h"
//联合体(共用体)
//不同类型的变量共同占用一段内存(相互覆盖),联合变量任何时刻只有一个成员存在,节省内存
//联合体变量的大小=最大的成员所占的字节数
//比喻:同穿一条裤子
union MyValue
{
int x;
int y;
double z;
};
void main(){
union MyValue dl;
dl.x = 90;
dl.y = 100;
//dl.z = 23.5;
printf("联合体最后一次赋值有效:\n");
printf("同整数型x:%d,同整数型y:%d,\n小数型:%lf\n", dl.x, dl.y, dl.z);
dl.z = 23.5;
printf("同整数型x:%d,同整数型y:%d,\n小数型:%lf\n", dl.x, dl.y, dl.z);
system("pause");
}
编译结果:
如何理解枚举,还是用最直观的代码形式:
#include "stdlib.h"
#include "stdio.h"
//类型为整数常量
enum Day
{
Monday = 0,
Tuesday = 1,
Wednesday = 2,
Thursday = 3,
Friday = 4,
Saturday = 5,
Sunday = 6
};
void main(){
//枚举的值,必须是括号中的值
enum Day d = Tuesday;
printf("%#x,%d\n", &d, d);
getchar();
}
结果如下: