天天看點

typedef union

typedef :最基本的功能是給資料類型起個别名

union 共用體

注意兩點

1 共用體的大小由裡面最大的資料類型大小來決定

2 共用體顧名思義,裡面的成員都是共享一塊記憶體,對後面的一個成員指派,會覆寫前面的成員的值(也不奇怪,因為他們共享一塊記憶體。但前提是成員所占位元組數相同,當成員所占位元組數不同時隻會覆寫相應位元組上的值,比如對char成員指派就不會把整個int成員覆寫掉,因為char隻占一個位元組,而int占四個位元組)

#include<stdio.h>
 #include<conio.h>
 typedef union{
 char c;
 int a;
 int b;
 }Demo;
 int main(int argc,char **argv)
 {
     Demo d;
     d.a=10;
     d.b=12;
     d.c='H';
 printf("size:%d\n",sizeof(d));
 printf("%c %d\t\t %d\n",d.c,d.a,d.b);
 getch();
 return 0;
 }      

運作結果是

4

H 72 72

因為前面的結果,完全被後面的覆寫掉了

大小寫字母和數字的ascii碼值是

a-z:97-122