#includestdiohint mainint argc char const argv union short i; char a2; u; ua0 = 0x11; ua1 = 0x22; printf0xxn ui; return 0;输出结果是为什么
输出结果是0x2211。
这是因为在联合体中,所有成员共享同一块内存空间。在这个例子中,联合体u包含一个short类型的成员i和一个char类型的数组a[2]。当我们给数组a[0]赋值0x11时,由于a[0]和i共享同一块内存空间,所以i的值会变为0x1100。当我们给数组a[1]赋值0x22时,由于a[1]和i共享同一块内存空间,所以i的值会变为0x2211。
所以最终输出的结果是0x2211。
原文地址: https://www.cveoy.top/t/topic/iBAT 著作权归作者所有。请勿转载和采集!