共用型
#include "stdio.h"main()
{
union zj
{
int a;
char ch[2];
}au;
au.a=298;
printf("%d,%d,",au.ch[0],au.ch[1]);
这里的42和1是怎么算出来的?
共用体就是数据共用同一段内存,它占用的空间大小由内部数据占空间最大的决定,
例如union zj
{
int a;
char ch[2];
}au;
占用的空间为2字节,298在内存中的16进制表示为 012a H,(高地址存高位,低地址存低位)
所以 ch[0]=01H,ch[1]=2aH 对应的十进制数分别为 1,42
但在不同机器上同样的数据类型占用的空间可能不同,如有的系统规定整形占四个字节等,最终结果可能不同.