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

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

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

相关文章
|
4天前
|
C语言
【C语言】库宏offsetof(结构体成员偏移量计算宏)
【C语言】库宏offsetof(结构体成员偏移量计算宏)
19 0
|
4天前
|
存储 C语言
c语言中的共用体
c语言中的共用体
18 0
|
4天前
|
存储 编译器 C语言
C语言共用体
C语言共用体
22 0
C4.
|
4天前
|
存储 C语言
C语言的共用体类型
C语言的共用体类型
C4.
16 0
|
4天前
|
C语言
|
4天前
|
C语言
操作符详解(3)C语言复合赋值操作符单目操作符
操作符详解(3)C语言复合赋值操作符单目操作符
|
4天前
|
C语言
C语言操作符详解(3)初始化和赋值操作符h
C语言操作符详解(3)初始化和赋值操作符h
|
6月前
|
存储 C语言
20 C语言 - 共用体
20 C语言 - 共用体
28 0
|
7月前
|
存储 C语言
C语言操作符[算数操作符,赋值操作符,单目操作符,移位操作符]
C语言操作符[算数操作符,赋值操作符,单目操作符,移位操作符]
|
4天前
|
存储 程序员 编译器
C语言变量与赋值详解
C语言变量与赋值详解
22 1