C++结构体、联合体

1、结构体:

struct 结构名
{
	数据类型1 成员名1;
	数据类型2 成员名2;
	.
	.
	数据类型n 成员名n;
};

程序举例:

#include<iostream.h>
struct animal
{
	int weight;
	int feet;
};
int main()
{
	animal dog1,dog2,chicken;
	dog1.weight=15;
	dog2.weight=34;
	chicken.weight=3;

	dog1.feet=4;
	dog2.feet=4;
	chicken.feet=2;

	cout<<"The weight of dog1 is "<<dog1.weight<<endl;
	cout<<"The feet of chicken is "<<chicken.feet<<endl;
}

2、联合体

于结构体区别在于共用存储空间,空间只有一个,所有成员共用,随时冲掉。

union 联合名
{
	数据类型1 成员名1;
	数据类型2 成员名2;
	.
	.
	数据类型n 成员名n;
};

程序举例:

#include<iostream.h>
struct aircraft
{
	int wingspan;                    //飞机共有属性、翼展
	int passengers;                  //共有属性、成员
	union
	{
		float fuel_load;             //燃料载重
		int pallets;                 //货物载重
	};
}fighter,transport;
int main()
{
	fighter.wingspan=40;
	fighter.passengers=1;
	fighter.pallets=4;
	fighter.fuel_load=12000.0;
	
	transport.wingspan=106;
	transport.passengers=4;
	transport.pallets=42;
	transport.fuel_load=18000.0;

	cout<<"fighter's carries is "<<fighter.pallets<<endl;
	cout<<"fighter's fuel load is "<<fighter.fuel_load<<endl;
	cout<<"transport's carries is "<<transport.pallets<<endl;
	cout<<"transport's fuel load is "<<transport.fuel_load<<endl;
}

/*输出结果
fighter's carries is 1178304512
fighter's fuel load is 12000
transport's carries is 1183621120
transport's fuel load is 18000
因为fuel把pallets的数值给冲掉了*/


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值