博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
结构与联合
阅读量:4935 次
发布时间:2019-06-11

本文共 717 字,大约阅读时间需要 2 分钟。

  1. 结构和联合都是由多个不同的数据类型成员组成,但在任何同一时刻,联合中只存放了一个被选中的成员(所有成员共用一块地址空间),而结构的所有成员都存在(不同成员的存放地址不同)。
  2. 对于联合的不同成员赋值,将会对其它成员重写,原来成员的值就不存在了,而对于结构的不同成员赋值是互不影响的。
#include 
union{  int i;  char x[2];}a;int main(){ a.x[0] = 10; a.x[1] = 1; printf("%d", a.i);}

结果是266(低位低地址,高位高地址,内存占用情况0x010A)

int main(){    union{        int i;        struct{            char first;            char second;        }half;    }number;    number.i = 0x4241;    printf("%c%c\n", number.half.first, number.half.second);    number.half.first = 'a';    number.half.second = 'b';    printf("%x\n", number.i);    return 0;}

AB(0x41,对应‘A’,是低位;0x42,对应‘B’,是高位)

6261(number.i和number.half共用一块地址空间)

转载于:https://www.cnblogs.com/yingl/p/5816249.html

你可能感兴趣的文章
4500-X验证镜像完整性
查看>>
帝国cms栏目调用封面模板页面内容标签
查看>>
创建maven的Java工程
查看>>
教程Xcode 4下编译发布与提交App到AppStore
查看>>
逆向工程
查看>>
[NOI2018] 归程 可持久化并查集
查看>>
python--数据结构列表
查看>>
Flask-Moment本地化日期和时间
查看>>
(四)语音识别测试案例
查看>>
oldboy第四天学习
查看>>
无论怎样,拒绝了
查看>>
Discuz API的延伸
查看>>
C/C++(C++内存管理,内联函数,类型转换,命名空间,string类)
查看>>
CentOS下一键安装Openstack
查看>>
【leetcode】Binary Tree Level Order Traversal I & II
查看>>
【NOIP2015】斗地主
查看>>
547. Friend Circles
查看>>
SQL、LINQ、Lambda 三种用法(转)
查看>>
Apache ZooKeeper Getting Started Guide 翻译
查看>>
uva 10537 Toll! Revisited(优先队列优化dijstra及变形)
查看>>