C语言共用体成员输出的值与赋值时的不同的原因

共用体成员输出的值与赋值时的不同的原因

在使用C语言的共用体时,如果成员输出的值与之前定义共用体变量的时候所赋值的不同,那么很可能是因为定义共用体变量的时候,为共用体的多个成员赋值造成的。因为共用体虽然允许在同一个内存位置上存储不同的数据类型的变量,但是任何时候都只能有一个成员存储值,也就是说,当共用体内的某一个成员被赋值了,那么其它成员之前所赋的值就会丢失或损坏,这就是造成共用体成员输出的值与赋值时不同的原因了。

解决方法

分开为C语言共用体的成员赋值,即什么时候使用就什么时候赋值,确切来说,要使用一个新的共用体的成员时,就应该为其赋值。

实例

#include <stdio.h>
#include <string.h>
union office_worker{
    int id;
    int salary;
};


int main() {
    union office_worker c;
    c.id = 2;
    printf("%d\n",c.id);
    c.salary = 8000;
    printf("%d\n",c.salary);

}

原文C语言共用体成员输出的值与赋值时的不同的解决方法

免责声明:内容仅供参考,不保证正确性!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容