美文网首页
5.2共用体

5.2共用体

作者: 拿着苹果学猪叫 | 来源:发表于2019-07-06 16:56 被阅读0次

共用体也称联合,可以看出一种特殊的结构。和结构一样,共用体也可以包括多种数据类型,但在共用体中,各种数据类型在内存占据同一地址,换句话说,在某个确定时刻,共用体只能表示一种数据类型。

5.2.1共用体的定义

union 共用体名称(或称标识)
{
      存储数据列表(或成员变量列表)
};

结束不要忘记在花括号后加分号“;”

union computer
{
      char branf[10];
      float price;
};

共用体的定义与结构几乎完全一样。

5.2.2共用体和结构的不同

#include<iostream>
using namespace std;

struct comstruct//定义结构comstruct
{
    char brand[20];//字符数组brand,表示品牌
    float price;//float型,表示价格
};

union comUnion//定义共用体comUnion
{
    char brand[20];
    float price;
};

int main()
{
    union comUnion com1;//声明一共用体com1
    comstruct com2;//声明一结构变量com2
    //共用体变量的成员占据相同的地址
    cout << "共用体com1.brand地址:" << &com1.brand << endl;
    cout << "共用体com1.price地址:" << &com1.price << endl;
    //结构体变量成员占据不相同的地址
    cout << "共用体com2.brand地址:" << &com2.brand << endl;
    cout << "共用体com2.price地址:" << &com2.price << endl;
    return 0;
}
共用体com1.brand地址:00F6FBA4
共用体com1.price地址:00F6FBA4
共用体com2.brand地址:00F6FB84
共用体com2.price地址:00F6FB98

5.2.3共用体变量的声明和初始化

在定义了一个共用体后,同样可以像声明一个int型变量一样声明一个共用体变量

union 共用体名共用体变量;

声明一个共用体的同时,可以完成其初始化,与结构体不同是,只能对共用体变量列表的一个变量进行初始化,确切的说,是对列表中第一个变量进行初始化,

comUnion com1={"Acer"};

但是如果用"comUnion com1={7000};"对com1进行初始化,编译器则会发生警告,比较两种写法中第一个变量(字符数组brand),

  • 改用共用体中变量列表的顺序,初始化的方式将有所不同。
    与结构体类似,可以吧共用体定义,共用体变量声明及初始化放一起,
union computer
{
char brand[20];
float price;
}com1={"Dell"};

C++允许使用匿名共用体,我们可以定义一个没有类型 名称的共用体
一定要至少声明一个共用体变量

union 
{
      char brand[20];
      float price;
}com1;

5.2.4
为了方便管理,某学校决定为学生和老师制作统一的卡片,其中一项内容是所在单独单位,对学生来说,代表其所在年级(int型),但对老师来说,代表学校某个部门(字符数组)这样的数据应如何组织呢?使用数组不行,因为数组必须存储同一类型的数据(int型和字符数组),使用结构也不行,因为
年级和部门只能取其一,两者之间不是并列关系,共用体是最好的方法。

相关文章

  • 5.2共用体

    共用体也称联合,可以看出一种特殊的结构。和结构一样,共用体也可以包括多种数据类型,但在共用体中,各种数据类型在内存...

  • C语言基础 之 共用体类型

    共用体类型 共用体类型的说明和变量定义 共用体类型又称“联合类型”,简称共用体。共用体类型的说明和变量的定义方式与...

  • C语言共用体

    共用体 共用体的格式:union 共用体名称{数据类型 属性名称;数据类型 属性名称;... ...}共用体定义的...

  • C语言学习之十——共用体、枚举类型和typedef

    共用体1.1共用体的概念 :使几个不同的变量共占同一段内存的结构,称为“共用体”类型的结构。1.2 定义共用体类型...

  • 9.结构体与共用体

    1.共用体 共用体的概念 : 使几个不同的变量共占同一段内存的结构称为 “共用体”类型的结构。 定义共用体类型变量...

  • 结构体 联合体 位域

    union 共用体/联合体 结构体和共用体的区别在于:结构体的各个成员会占用不同的内存,互相之间没有影响;而共用体...

  • iOS共用体

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

  • C语言的一些符号含义、 函数含义

    union:共用体/联合体 union 共用体名{成员列表};类似结构体,是一群变量的集合,和集合不同的是: 共用...

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

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

  • C共用体

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

网友评论

      本文标题:5.2共用体

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