C和指针之联合体大小

举报
chenyu 发表于 2021/07/26 23:23:41 2021/07/26
【摘要】 1、联合体的特点和大小 union是共用一个内存首地址,联合体中每个成员的地址都相同,等于联合体变量的首地址 联合体的大小足够容纳最宽的成员,大小能被其包含的所有基本数据类型的大小所整除         2、测试Demo   #include <stdio.h> union var { long i...

1、联合体的特点和大小

union是共用一个内存首地址,联合体中每个成员的地址都相同,等于联合体变量的首地址
联合体的大小足够容纳最宽的成员,大小能被其包含的所有基本数据类型的大小所整除

 

 

 

 

2、测试Demo

 


  
  1. #include <stdio.h>
  2. union var
  3. {
  4. long int a;
  5. int b;
  6. };
  7. union size
  8. {
  9. int a;
  10. double b;
  11. char c[11];
  12. };
  13. int main()
  14. {
  15. union var v;
  16. v.a = 3.14;
  17. printf("v.b is %d\n", v.b);
  18. v.b = 6;
  19. printf("v.a is %ld the address is %p\n", v.a, &v.a);
  20. printf("v.b is %d the address is %p\n", v.b, &v.b);
  21. union size union_first;
  22. union size union_second;
  23. union size union_third;
  24. //大小足够容纳最宽的成员,大小能被其包含的所有基本数据类型的大小所整除
  25. printf("the sizeof union_first is %d\n", sizeof(union_first));
  26. printf("the sizeof union_second is %d\n", sizeof(union_second));
  27. printf("the sizeof union_third is %d\n", sizeof(union_third));
  28. printf("sizeof(long int) is %d\n", sizeof(long int));
  29. printf("the sizeof

文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。

原文链接:chenyu.blog.csdn.net/article/details/78650139

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。