如何了解聯合體,我們通過以下的代碼可以清晰明白:
#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");
}
編譯結果:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX9s2Vk9WOGRmesJzY1xmMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39TNwUTN0kDN0EDNxUDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
如何了解枚舉,還是用最直覺的代碼形式:
#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();
}
結果如下: