首页
学习
活动
专区
工具
TVP
发布

共用

共用共用体类型与结构体类型一样都属于构造类型,都需要在程序中先定义数组类型再使用,它们定义的语法形式也是非常类似的。...但是它们存储方式是不同的,结构体类型是各个成员的集合,每个成员都有自己的内存空间,而共用体类型的所有成员共用同一段内存空间。这种存储方式决定了程序运行中的某一时刻共用体类型中只能有一个成员起作用。...共用体类型的定义 共用体类型定义的一般形式 union 共用体类型名 { 数据类型成员名1; 数据类型成员名2; .........data的共用体类型,它由3个不同类型的成员组成。...当使用该共用 体类型定义变量时,变量的3个成员共享同一内存空间。

36720
您找到你想要的搜索结果了吗?
是的
没有找到

9.5 共用体类型

01 什么是共用体类型 1、一般形式 union 共用体名 { 成员表列 }变量表列; 2、结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。...而共用体变量所占的内存长度等于最长的成员的长度。 02 引用共用体变量的方式 1、只有先定义了共用体变量才能引用它,但应注意,不能引用共用体变量,而只能引用共用体变量中的成员。...03 共用体类型数据的特点 1、同一个内存段可以用来存放几种不同类型的成员,但在每一瞬时只能存放其中一个成员,而不是同时存放几个。 2、可以对共用体变量初始化,但初始化表中只能有一个常量。...3、共用体变量中起作用的成员是最后一次被赋值的成员,在对共用体变量中的一个成员赋值后,原有变量存储单元中的值就取代。 4、共用体变量的地址和它的各成员的地址都是同一地址。...5、不能对共用体变量名赋值,也不能企图引用变量名来得到一个值。 6、以前的C规定不能把共用体变量作函数参数,但可以使用指向共用体变量的指针作函数参数。

5483029

结构体与共用

这种几个不同的变量共同占用一段内存的结构,被称为共用体类型结构,简称共用体。一般定义 形式为: union 共用体名 { 数据类型 成员名 1; 数据类型 成员名 2; .........数据类型 成员名 n; }变量名表列; 只有先定义了共用体变量,才能在后续的程序中引用它。不能直接引用共用体变量,而只能引用共用 体变量中的成员。...引用方法如下: 共用体变量名.成员名 共用体类型数据具有以下特点: 同一个内存段可以用来存放几种不同类型的成员,但是在每一瞬间只能存放其中的一种,而不是同时 存放几种。...共用体变量中起作用的成员是最后一次存放的成员,在存入一个新成员后,原有成员就失去作用。 共用体变量的地址和它的各成员的地址都是同一地址。...不能把共用体变量作为函数参数, 也不能是函数返回共用体变量, 但可以使用指向共用体变量的指针。 共用体类型可以出现在结构体类型的定义中,也可以定义共用体数组。

1.6K70

C语言-枚举、共用

共用体 前面章节学习了结构体,结构体里可以按顺序存放相同或者不同的数据类型,每个成员都有它对应的存储空间。...而共用体和结构体一样也可以按顺序存放相同或者不同数据类型,但是与结构体的区别是,共用体所有成员共用一个存储空间,存储空间由成员中存储空间最大的来决定。...定义共用体的关键字: union 下面通过结构体、共同体两个定义代码对比区别。...共用体定义示例: union app { int a; int b; char c; }; **共用体:**也称为联合体,采用内存覆盖技术,每个成员共用一个内存空间,开空间是以最大的成员开空间...共用体的语法和使用方法(定义、成员变量的访问形式等等)与结构体一样。

75820

C语言 | 共用体概述

什么是C语言共用体类型 一般形式 union 共用体名 {   成员表列 }变量表列; 结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。...而共用体变量所占的内存长度等于最长的成员的长度。 C语言引用共用体变量的方式 只有先定义了共用体变量才能引用它,但应注意,不能引用共用体变量,而只能引用共用体变量中的成员。...共用体变量中起作用的成员是最后一次被赋值的成员,在对共用体变量中的一个成员赋值后,原有变量存储单元中的值就取代。 共用体变量的地址和它的各成员的地址都是同一地址。...不能对共用体变量名赋值,也不能企图引用变量名来得到一个值。 C语言规定不能把共用体变量作函数参数,但可以使用指向共用体变量的指针作函数参数。...共用体类型可以出现在结构体类型定义中,也可以定义共用体数组。

89300

共用体变量的定义

共用体变量的定义 共用体变量可以采用以下3种形式定义。...1.先定义共用体类型再定义共用体变量 union data { short a; int b; double c; }; union data u1, u2; 2.在定义共用体类型的同时定义共用体变量...union data { short a; int b; double c; } u1,u2; 3.直接定义共用体变量 union { short a; int b; double c; } u1,u2...; 上面分别用3种形式定义了共用体变量u1和u2,下面以变量u1为例来分析共用体变量的内存空间的分配情况。...从图中可以知道,共用体与结构体虽然在定义的语法形式上很相似,但是其内存分配方式与结构体完全不同,任何时候内存空间中只能存放一个成员的数据,也就意味着,程序中任何时刻都只能使用共用体变量的一个成员。

99520

C语言 | 共用体概述

什么是C语言共用体类型 一般形式 union 共用体名 { 成员表列 }变量表列; 结构体变量所占内存长度是各成员占的内存长度之和。每个成员分别占有其自己的内存单元。...而共用体变量所占的内存长度等于最长的成员的长度。 C语言引用共用体变量的方式 只有先定义了共用体变量才能引用它,但应注意,不能引用共用体变量,而只能引用共用体变量中的成员。...共用体变量中起作用的成员是最后一次被赋值的成员,在对共用体变量中的一个成员赋值后,原有变量存储单元中的值就取代。 共用体变量的地址和它的各成员的地址都是同一地址。...不能对共用体变量名赋值,也不能企图引用变量名来得到一个值。 C语言规定不能把共用体变量作函数参数,但可以使用指向共用体变量的指针作函数参数。...共用体类型可以出现在结构体类型定义中,也可以定义共用体数组。

67130

9.9 C++共用

声明共用体类型的一般形式为  union 共用体类型名 {成员表列 }; 定义共用体变量的一般形式为  共用体类型名 共用体变量名; C++允许在声明共用体类型的同时定义共用体变量,也可没有共用体类型名而直接定义共用体变量...C++共用体变量的访问 C++不能引用共用体变量,而只能引用共用体变量中的成员。...union_1.temp;//引用共用体变量中的整型成员temp union_1.character;//引用共用体变量中的字符型成员character union_1.str;//引用共用体变量中的双精度成员...C++共用体类型的特点 共用体变量的地址和它的各成员的地址都是同 一地址。 不能对共用体变量名赋值。 不能企图引用变量 名来得到一个值。 不能在定义共用体变量时对它初始化。...不能用共用体变量名作为函数参数。  C++能够访问的是共用体变量中最后一次被赋值的成员,在对一个新的成员赋值后原有的成员就失去作用。  9.9 C++共用体 更多案例可以go公众号:C语言入门到精通

50288

共用体变量的使用

共用体变量的使用 程序中一般不能直接把共用体变量作为一个整体进行各种操作,也是通过成员运算得对共用体变量的各个成员变量的引用来完成各种运算和操作。...引用共用体变量成员的一般形式是: 共用体变量名.成员名 使用访问上面共用体变量u1的成员a采用如下方式: u1.a 如果两个共用体变量使用同一个共用体类型定义,则它们之间可以相互赋值,例如上面定义的两个变量...共用体变量在定义时也可以进行初始化工作,其一般形式如下: union 共用型名 共用体变量名={成员1初值}; 注意:共用体变量进行初始化工作时,赋值符右边的花括号中只能是第一个成员的初始 值,并且花括号是不能省略的...d.c[]; d.c[]=x; printf("交换操作后:d.n=%d\n",d.n); return ; } 完整代码的程序运行结果: 运行结果分析:在本例中定义的共用体类型变量...注意成员n和c的内存空间是共用的。 程序第11行给成员n赋值为十六进制整数0xFfF11对应的二进制是1111111100010001。第12行以十进制有符号数形式输出的结果是-239。

68110

8.4 共用体和枚举类型

一、共用体 (1)定义 一般形式 union 共用体名 {成员表列 }变量表列; 结构体变量所占用的内存长度等于最长的成员的长度 (2)共用体的特点 ①同一个内存段可以用来存放几种不同类型的成员,...但在每一瞬间只能存放其中一个成员而不是几个 ②可以对共用体变量初始化,但初始化表中只能有一个常量 ③共用体变量中起作用的成员是最后一次被赋值的成员 ④共用体变量的地址和它的各成员的地址都是同一地址 ⑤不能对共用体变量名赋值...,也不能企图引用变量名来得到一个值 ⑥以前的C规定不能把共用体变量作为函数参数,但可以使用指向共用体变量的指针作函数参数 ⑦共用体类型可以出现在结构体类型定义中,也可以定义共用体数组 二、枚举 (1)定义

4093129
领券