C++结构体、联合体、枚举体及其内存

C++结构体、联合体、枚举体及其内存

结构体:是一种特殊形态的类
结构体与类的区别:结构体与类具有不同的默认访问控制属性:
在类中,对于未指定访问控制属性的成员,其访问控制属性为私有类型;在结构体中,对于未指定任何访问控制属性的成员,其访问控制属性为公有型。
关键字:struct
定义:

Struct 结构体名称
{
	公有成员;
 Protected:
	保护型成员
Private:
私有成员
};

什么时候用结构体而不用类:
1:主要用来保存数据,而没有什么操作的类型
2:人们习惯将结构体的数据成员设置为公有,因此这时用结构体比较方便
如果:
1:一个结构体的全部数据成员都是公共成员;
2:没有用户定义的构造函数;
3:没有基类和虚函数;
那么这个结构体可以通过下列方式初始化:
类型名 变量名 = { 成员数据1初值, 成员数据2初值, …… };
例如:

struct student
{
	char name[20];//姓名
	int num;//学号
	int age;//年龄
	float score;//分数
};
student wh={"wh",1529401160,20,98.0};

其中student为结构体的类型名;wh为结构体变量名
结构体的内存大小:
以字节最大的单位 为地址对齐标准,如 结构体中 最大为 double,8个字节,那么 比它小的单位就要凑齐 8的整数倍字节大小。
例如:

struct test1
{
	char w;
	int s;
	double q;
}m;

char 1字节,int 4字节, double 8字节,所以以8字节对齐,总字节大小为8的倍数
8+4+1=13,而8字节对齐后,为16。

再例如:

str
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值