唐僧爱吃唐僧肉 2017-05-21 08:19 采纳率: 16.7%
浏览 761
已采纳

求解!跪求大神相助;

#include 
int main()
{  
    union
    { 
        int i[2];
        int k;
        int c;
    }t,*s = &t;
     
    s->i[0] = 10;
    s->i[1] = 20;
    s->k=30;
    printf("%d\n", s->k);    
    printf("%d\n", s->i[0]); 
    printf("%d\n", s->c);   
    return 0;
}
这个程序输出的值为什么都是三十?求大神指教。

  • 写回答

3条回答 默认 最新

  • threenewbee 2017-05-21 09:13
    关注

    联合体存储是共享的,所以看最后一个赋值怎么覆盖的内存。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?