C语言----共用体

共用体:

union //联合--共用体

早期的时候,计算机的硬件资源有限,

能不能让多个成员变量 公用同一块空间

使用方式 类似 结构体 --- 也是构造类型

struct 结构体名

{

成员变量名

};

union 共用体名

{

成员变量名

}; //表示构造了一个共用体类型

//定义变量

//定义指针

//定义数组

//做函数形参

//做函数返回值类型

注意:

1.共用体类型的大小 = 最大的成员的大小

2.共用体初始化,只能写一个值,这个值是给第一个成员变量的值

3.共用体成员的访问方式 和 结构体一样

4.共用体因为公用同一块空间

赋值时,后赋值的会影响前面赋值的结果

5.用途

a.节省空间

校园人员管理系统

struct student

{

char name[20];

int sno;

float score;

};

struct teacher

{

char name[20];

int tno;

float salary;

};

struct member

{

char name[20];

int no;

union

{

float salary;

float score;

}data;

};

struct member s;

printf("score = %f\n",s.data.score);

struct member t;

printf("score = %f\n",s.data.salary);

b.数据转换

192.168.0.59 //ip地址 --- 网络环境中 ---实际对应是一个32位的数值

#include <stdio.h>

union Ip

{

unsigned char ip[4];

unsigned int iip;

};

int main(int argc, const char *argv[])

{

union Ip d = {192,168,0,59};

printf("ip = %#x\n",d.iip);

return 0;

}

相关推荐
yyywxk1 分钟前
Matlab 报错:尝试将 SCRIPT vl_sift 作为函数执行:
开发语言·matlab
码上飞扬3 分钟前
Java大师成长计划之第5天:Java中的集合框架
java·开发语言
Bob999810 分钟前
三大浏览器(Firefox、Opera、Chrome)多个Profile管理!
开发语言·javascript·eclipse·sqlite·ecmascript·hbase
Frankabcdefgh18 分钟前
前端面试 js
开发语言·javascript·原型模式
EnigmaCoder26 分钟前
java面向对象编程【高级篇】之多态
java·开发语言
秋名RG30 分钟前
浅谈Java 内存管理:栈与堆,垃圾回收
java·开发语言·jvm
爱学习的章鱼哥35 分钟前
如何实现一个可视化的文字编辑器(C语言版)?
c语言·编辑器·文本编辑器·程序设计·easyx
学习机器不会机器学习38 分钟前
深入浅出JavaScript常见设计模式:从原理到实战(1)
开发语言·javascript·设计模式
前端.火鸡1 小时前
使用wavesurferJs实现录音音波效果
开发语言·前端·javascript
zh_xuan1 小时前
java Optional
java·开发语言