以下程序的输出结果是main ( ) {union {char i [ 2 ] ;int k ;} r;r.i[0]=2;r.i[1]=5;printf (''%d'',r.k);
因为存储时有大小端问题,你初始化的char类型两个字节,在真实存放时可能是[05][02]的排列,你可以尝试用%x来打印k,应该能一目了然
k没有初始值,默认为0,r的第0个就是2
这打印不是个随机值吗,你k没初始化
K 只定义为整数 为给初始值,系统默认为 0