美文网首页
C语言共用体成员输出的值与赋值时的不同的原因

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

作者: 码字的程序员 | 来源:发表于2023-12-30 07:59 被阅读0次

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

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

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

相关文章

  • iOS共用体

    iOS共用体 一、何为共用体 在C语言中有union联合体/共用体。 union中可以定义多个成员,union的大...

  • C中的结构体

    C语言的结构体生成以及赋值方法,打点调用,以及->调用 赋值总结:如何取出以及赋值结构体中的成员变量1.结构体变量...

  • 整型数据如何在内存中存放

    /* 共用体: 同一段存储单元存放不同类型的变量。共用体中所有成员所使用的开头地址的值都是一样的。 ①共用体变量的...

  • (实验)Swift 值和引用

    元组 输出 可见元组赋值是值类型传递 结构体 输出 结构体赋值是值类型传递 类 数组 输出 可见数组赋值是值类型传...

  • 0基础学习C语言第十章:共用体

    C共用体 共用体是一种特殊的数据类型,允许您在相同的内存位置存储不同的数据类型。您可以定义一个带有多成员的共用体,...

  • NDK开发—结构体、共用体与C++基础(三)

    目录 结构体、共用体与C++基础11、结构体字节对齐2、共用体3、C++ 输出函数符号兼容引用字符串C字符串字符串...

  • 2.运算符

    与 C 语言和 Objective-C 不同,Swift 的赋值操作并不返回任何值。所以以下代码是错误的: if ...

  • 枚举

    与C或者Objective-C不同的是,在Swift语言中枚举类型的成员初始的时候不会被默认赋值成整数值,不同的枚...

  • 赋值运算符

    与 C 语言和 Objective-C 不同,Swift 的赋值操作并不返回任何值。所以以下代码是错误的:if x...

  • C++的共用体使用场景

    C++使用union 描述 union是C语言中一种声明共用体的数据类型,使用union声明的共用体只会占用共用体...

网友评论

      本文标题:C语言共用体成员输出的值与赋值时的不同的原因

      本文链接:https://www.haomeiwen.com/subject/ntgsndtx.html