C的union联合体(共用体)和enum枚举

如何理解联合体,我们通过以下的代码可以清晰明白:

#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();
}
结果如下:





猜你喜欢

转载自blog.csdn.net/insist_hui/article/details/80309563