union a
{
 int x;
 char a[2];
}

如果我们将512值赋给x并尝试打印a[0]和a[1],那么输出是什么
请解释一下怎么做?

最佳答案

根据标准,写给一个工会成员,然后从另一个工会成员读的结果是没有定义的。任何事情都有可能发生。
实际上,如果您在一个小型的endian机器上运行代码,[0]可能是0,[1]可能是2在16位大端机上,[0]是2,[1]是0。在一个32位的大字节机器上(不存在,正如你所定义的),[2 ]将是2,而[0 ],[1 ],和[3 ]将是0。

10-08 07:35