共用体学习

#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;

//这里学习的共用体可以参考上一次的结构体,寻找区别与共同之处、

union Data
    //union就是共用体的标志
    //最简单的定义一个共同体,共同体tag类型为Data但是变量却是data,而data中又能容纳多个不同类型的变量
{
    int i;
    float f;
    char  str[20];
} data;

int main()
{
    union Data data;
    printf("共同体data的数据大小为:%d\n", sizeof(data));
    //这里会输出20,因为我们定义的共同体里边最大的str就有二十个大小
    data.i = 10;
    data.f = 220.5;
    //跟结构体是一样的,用的是.作为访问字符,定义的时候也是数字直接等于,然后字符就用strcpy函数复制
    strcpy(data.str, "C Programming");

    printf("data.i : %d\n", data.i);
    printf("data.f : %.1f\n", data.f);
    printf("data.str : %s\n", data.str);
    //注意这里变量i和f会输出乱码,只有str能正常输出,因为不支持多个变量同时占位,应该改成以下形式

    data.i = 10;
    printf("data.i : %d\n", data.i);

    data.f = 220.5;
    printf("data.f : %.1f\n", data.f);

    strcpy(data.str, "C Programming");
    printf("data.str : %s\n", data.str);

    return 0;
    //说实话感觉没有结构体那么多用法,而且是可以被代替的,学习扩充知识吧,说不定以后就用上了呢
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值