C++中的联合体类型和枚举类型

一、联合体:

1、特点:

      a.) union 关键字可以省略 (指定义联合体变量的时候可以省略关键字)

      b.) 支持匿名联合

2、定义格式:

union 联合体名

{

    //定义成员.     

}; //";" 分号不能丢哦


3、使用(直接上代码)

void UnionFunEx()
{
	union //匿名联合定义
	{
		int num;
		char buf[4];
	};


	num = 0x12345678;


	for (int i = 0 ;  i < 4 ; ++i)
	{
		//cout<<"buf["<<i<<"] = "<<buf[i]<<endl;
		//小端系统 低位字节保存低位数据
		printf("%#x,[%p]\r\n",buf[i],&buf[i]);//前面输出值,后面输出所在内存地址(数组中4个元素的地址均一样)
	}


	//小端系统 低位字节保存低位数据
	printf("%#x,%#x,%#x,%#x\r\n",buf[0],buf[1],buf[2],buf[3]);  //输出0x78,0x56,0x34,0x12


	cout<<"----------------------------------------"<<endl;


	printf("[%p]\r\n",&num);
	printf("[%p]\r\n",buf);


}
void UnionFun()
{
	union { //匿名联合定义
		int n;
		char c[4];
	};
	
	n = 0x12345678;
	
	printf("%x,%x,%x,%x\r\n",c[0],c[1],c[2],c[3]); //输出0x78,0x56,0x34,0x12
}

二、枚举

1、特点:

a.) enum 关键字是可以省略的(指当定义枚举变量时,关键enum可以省略)

b.) 枚举是一个独立的数据类型,C语言当中枚举最基本的就是整型 (这一点决定了,C语言和C++语言中使用枚举时完全不同)

2、定义格式:

enum 枚举名称 {ONE,TWO,THREE,...}; //";" 分号不能丢

3、使用(直接上代码)

void EnumFunEx()
{
enum DIRECTION{UP,DOWN,LEFT=10,RIGHT};


//DIRECTION dd = 66;  //编译报错,类型不一致 .C++中不能将整型转换成枚举,因为在C++当中枚举是独立的数据类型。而枚举是可以转换成整数的。
DIRECTION dd = DOWN;
cout<<dd<<endl;
}
void EnumFun()
{
enum E{a,b,c,d};


int n = b; //枚举可以转换成整数


//E e = 10 ; //错误,整数不能给枚举赋值,只能用a,b,c,d赋值.


cout<<"n: "<<n<<endl;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值