[C语言]union

文章讨论了C语言中使用共用体(union)时,由于内存共享特性,不能同时初始化不同类型的成员变量,可能导致数据覆盖的问题。共用体内的变量只能选择性地赋值一个。
摘要由CSDN通过智能技术生成

union的变量共用内存.

#include <stdio.h>



typedef struct Leix {
    char* profession;
    union {    
        int score;
        char* course;
    };
}Leix;

int main() {
    Leix student1 = { "Student",90 }; 
    Leix teacher1 ;

    teacher1.profession = "Teacher"; teacher1.score = 91; teacher1.course = "Chinese";
    printf("teacher: profession=%s,score=%d,course=%s", teacher1.profession, teacher1.score,teacher1.course);

    return 0;
}

因为共用体共用内存,上述代码的teacher变量不能同时初始化score和sourse,会导致数据覆盖;

共用体union里面的变量只能使用一个.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值