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

发布时间:2023年12月31日

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

在使用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语言共用体成员输出的值与赋值时的不同的解决方法

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

文章来源:https://blog.csdn.net/weixin_47378963/article/details/135312957
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。