#include <iostream> using namespace std; union { int i; int c; char x[2]; }a; int main() { cout << "Hello world!" << endl; a.x[0] = 10; a.x[1] = 1; cout <<a.c <<endl; return 0; }
联合体中个成员使用同一个地址,如x[2],赋值时x[0]使用地地址,x[1]使用高地址,所以存储的是010A。输出为266。以为使用的是同一个地址所以cout <<a.c <<endl;和cout <<a.i <<endl;输出的是同一个地址的数据。
原文链接: https://www.cnblogs.com/javaexam2/archive/2011/09/07/2632890.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/31893
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!