位置:首页 > 软件操作教程 > 编程开发 > C语言 > 问题详情

C语言 共用体变量的引用

提问人:刘团圆发布时间:2020-12-02

    对于共用体变量不能整体引用,只能引用共用体变量的某个成员,引用方式与引用结构体变量成员相似,对于共用体成员可以赋值、输入、输出、计算等。例如:

union data

{

    int a;

    int b;

    int c;

};

main()

{

    union data u1;

    u1.a=10;

    u1.b=15;

    u1.c=u1.a+u1.b;

    printf("%d,%d,%d\n",u1.a,u1.b,u1.c);

}

    程序分析:定义一个共用体data,其中含三个成员a、b、c,用共用体data定义变量u1,并分别为u1的各个成员u1.a、u1.b、u1.c赋值。最后输出的结果是什么呢?

    假设为共用体变量u1分配的内存空间为2000,则u1中的各个成员a、b、c在内存中的首地址全部都是2000。程序执行过程如下:

    ①先为u1.a赋值10,2000开始地址段中存入10。

    ②再为u1.b赋值15, 2000地址段中存入15,覆盖刚存入的10。

    ③最后计算u1.a+u1.b,因为u1.a、u1.b共用一个地址,所以u1.a、u1.b的值全部都是15,相加的结果为30,将30赋给u1.c,成员c与成员a、b共用地址,所以c的值30又覆盖了原来存在该地址中的15,输出u1.a、u1.b、u1.c全部都是30。


程序执行,输出结果为:

  30,30,30

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部