共用体成员输出的值与赋值时的不同的原因
在使用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("%dn",c.id);
c.salary = 8000;
printf("%dn",c.salary);
}
原文:C语言共用体成员输出的值与赋值时的不同的解决方法https://www.x1y1z1.com/c/cunionprintf.html
免责声明:内容仅供参考,不保证正确性!