共用体类型--c语言

共用体类型:

共用体中所有的成员共用一段内存(所有成员的起始地址都是一样的)

格式:

复制代码
union 共用体名
{
    成员列表;
};
注:
    1.成员列表定义该共用体的成员,成员定义的方式与普通变量的方式一样。
    2.成员列表必须用一对花括号括起。
    3.共用体名可以省略。

如:

复制代码
union data
{
    int i;
    char ch[10];
    float s;
};
//定义了一个data的共用体类型,该类型有三个成员

共用体变量的定义

1.先定义类型,在定义变量

复制代码
union data
{
    int i;
    char ch[10];
    float s;
};

union data a1;

2.定义类型的同时,定义变量

复制代码
union data
{
    int i;
    char ch[10];
    float s;
}a1;

3.直接定义变量

复制代码
union 
{
    int i;
    char ch[10];
    float s;
}a1;

注:由于共用体类型的所有成员都共用同一段内存,所以共用体类型变量所占字节数等于该共用体类型中占用字节数最多的成员所占的字节数。sizeof(a1)>=10

共用体变量的引用:

1.不能整体引用共用体变量,只能引用其他成员 引用的格式:共用体变量名.成员名

2.同类型成员共享值

3.在内存中整型数据的二进制数低8位占用前面一个字节,高8位占用后面一个字节。(高位放高地址,低位放低地址)

如:整数255,在内存中存储的形式为:

11111111 00000000 一个字符型数据占用一个字节,对于数组来说前面元素占用前面的字节。

4.共用体变量之间可以相互赋值,赋值后两个变量应使用同一成员。

5.共用体变量的地址与各成员的地址都相同。

6.在定义共用体时,可以对其进行初始化,但只能有一个初值,且必须用花括号将初值括起。相当于给第一个成员赋值。

7.共用体、结构体的成员均可以是共用体或结构体类型。

8.不能用共用体类型变量作为函数参数

9.计算共用体占用字符数

相关推荐
灰灰勇闯IT15 分钟前
KMP算法在鸿蒙系统中的应用:从字符串匹配到高效系统级开发(附实战代码)
算法·华为·harmonyos
小龙报16 分钟前
【算法通关指南:数据结构和算法篇 】队列相关算法题:3.海港
数据结构·c++·算法·贪心算法·创业创新·学习方法·visual studio
csuzhucong19 分钟前
一阶魔方、一阶金字塔魔方、一阶五魔方
算法
五花就是菜32 分钟前
P12906 [NERC 2020] Guide 题解
算法·深度优先·图论
韩曙亮38 分钟前
【人工智能】AI 人工智能 技术 学习路径分析 ① ( Python语言 -> 微积分 / 概率论 / 线性代数 -> 机器学习 )
人工智能·python·学习·数学·机器学习·ai·微积分
Yue丶越43 分钟前
【C语言】自定义类型:结构体
c语言·开发语言
辞旧 lekkk44 分钟前
【c++】封装红黑树实现mymap和myset
c++·学习·算法·萌新
星轨初途1 小时前
C++的输入输出(上)(算法竞赛类)
开发语言·c++·经验分享·笔记·算法
n***F8751 小时前
SpringMVC 请求参数接收
前端·javascript·算法
Liangwei Lin1 小时前
洛谷 P1025 [NOIP 2001 提高组] 数的划分
算法