关于c语言以下程序运行后的输出结果是

以下程序运行后的输出结果是 【5】
void main()
{ union
{ long b;
char c;
}m;
m.b=0x12345678;
printf("%x",m.c);
}
答案是78
我不懂为什么

联合体里面的所有成员共用同一块儿空间, 如果你的是32位机器的话, b = 0x12345678 占4个字节, 根据你的输出的c=78, 则你的是小端机器,
0x12345678 每两个数字占一个字节, char c 只占一个字节, 所以只会取b内容的一个字节的内容, 你的是小端机器, 所以输出为78, 如果是大端的, 则输出为12,
温馨提示:答案为网友推荐,仅供参考
相似回答