探讨C语言中的“联合“类型

本文详细介绍了C语言中的联合类型,讨论了如何使用联合让多个不同类型的变量共享同一内存区域,以及联合的初始化、访问和联合指针的使用。重点指出,由于联合成员共享内存,故在任何时刻只有一个成员的值是有效的。
摘要由CSDN通过智能技术生成

前面我们知道C语言在定义一个变量时,往往会为定义的变量分配一段内存空间。但是C语言有一个特殊功能,可以使多个变量共享同一个内存。这个功能可以通过联合来实现。那么什么是联合呢?

一.联合

联合:在C语言中允许多个不同变量共享同一内存区域的功能称为联合。

假如现在我要定义三个变量共享的一个联合,也就是三个变量同属同一内存区域,应该怎么定义呢?

union unnode
{
   int n;
   double a;
   char c1;
}u;

现在我们来看上述代码,你发现它与那一种类型很相似呢?对的,从其结构上看,与我们所学的结构模板极为相似。最明显其头部的关键字不一样,结构的关键字是struct,而联合的关键字是union(就是联合的英文单词)。其次你会发现,3个变量n,a,c1的数据类型不同,也就是说不同数据类型的变量也可以联合起来,共享同一内存,不一定非要都是同一数据类型。分号前的u表示定义一个联合变量。即在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值