博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[c/c++] programming之路(27)、union共用体
阅读量:5055 次
发布时间:2019-06-12

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

共用体时刻只有一个变量,结构体变量同时并存

一、创建共用体的三种形式

#include
#include
#include
union info{ int price; char str[30];}data1,data2,*p,data[10]; //第一种创建形式union info dataA,dataB,*q,dataN[10];//第二种形式union{ //第三种形式:匿名共用体,限制共用体的数量 char str[30]; int price;}a,b,c;void main(){ union info in1; in1.price=40; strcpy(in1.str,"联想"); printf("%d\n",sizeof(union info));//共用体的长度为其中某个变量的最长长度 printf("%d,%s\n",in1.price,in1.str);//任何时刻,共用体同时只能有一个变量存在 system("pause");}

二、共用体的大小及初始化

#include
#include
#include
union dataA{ int a; short b; char c;};union dataB{ double b; char str[9];};void main(){ //共用体的大小必须至少包含最大的成员数据,可以整除最小的成员数据 printf("%d\n",sizeof(union dataA)); printf("%d\n",sizeof(union dataB));//填充现象:共用体的大小一定可以被最小类型整除 system("pause");}

#include
#include
#include
union info{ int price; char str[30];};void main(){ union info in1; in1.price=40; strcpy(in1.str,"联想");//共用体起作用的是最后一个赋值的成员变量 printf("%d,%s\n",in1.price,in1.str); union info in2={
30};//大括号初始化时,只能初始化第一个 in2=in1;//共用体可以直接赋值 printf("%d,%s\n",in2.price,in2.str); system("pause");}

三、指针引用

#include
#include
#include
union info{ int price; char str[30];};void main(){ union info info={
1}; //strcpy(info.str,"china"); printf("%d,%s\n",info.price,info.str); union info *p=&info; printf("%d,%s\n",p->price,(*p).str); system("pause");}

 

转载于:https://www.cnblogs.com/little-monkey/p/7644098.html

你可能感兴趣的文章
Linux - svn 操作
查看>>
Python编写的ssh客户端[类似putty]
查看>>
格式化日期
查看>>
管中窥Vue
查看>>
hdu 1010 Tempter of the Bone 奇偶剪枝
查看>>
WinForm/Silverlight多线程编程中如何更新UI控件的值
查看>>
LightOJ 1013 - Love Calculator LCS
查看>>
秒杀 ILSpy 等反编译利器 DotNet Resolver
查看>>
Linux常用命令学习随笔
查看>>
vue-cli中浏览器图标的配置
查看>>
电子商务的一点思索
查看>>
ABP框架理论学习之Hangfire集成
查看>>
洛谷 P1635 跳跃
查看>>
牛客网Java刷题知识点之同步方法和同步代码块的区别(用synchronized关键字修饰)...
查看>>
这周好忙
查看>>
ios开发- 利用运行时(runtime)字典转模型
查看>>
python基础(集合,文件操作)
查看>>
CSS Box Model 盒子模型
查看>>
Linux三剑客之awk最佳实践
查看>>
[译] Javascript初学者需要知道的十件事
查看>>