9 CPP结构体注意事项

C++结构体与内存管理
这篇博客介绍了C++中的结构体定义、初始化、内存占用以及结构体成员的访问。强调了结构体成员可以是基本数据类型,但不推荐使用C++的类如string。讨论了内存对齐的影响,指出结构体大小可能不等于成员大小之和。还提到了如何清空结构体、赋值以及结构体数组的操作。此外,文章警告了在结构体中使用指针时需要注意的内存管理和sizeof运算的潜在问题。最后,举例说明了结构体中的string成员处理需谨慎,以免引发问题。

注意:

1 结构名是标识符

2 结构体的成员可以是任意数据类型

3 定义结构体描述的代码可以放在程序的人和地方,一般放在main函数的上面或头文件中。

4 结构体成员可以用C++的类(如string),但是不提倡。

5 在C++中,结构体重可以有函数,但是不提倡。

6 在C++11中,定义结构体的时候一指定初始值。

struct perople{

string name;//不提倡

}

建议

struct perople{

char name[21];

}

C++11可以有初始值

struct perople{

char name[21]="测试";

}

 

初学阶段,第一种初始化方法用的比较多,但是实际开发中,第二种方法多。

3)使用结构体

在C++程序中,用成员运算符(.)来访问结构体的每个成员。结构体中的每个成员具备普通变量的全部特征。

语法:结构体变量名.结构体成员名;

4)内存占用的大小

用sizeof运算符可以得到结构体占用内存的大小。

注意:结构体占用内存的大小不一定等于全部成员占用内存之和。

内存对齐: #pragma pack(字节数) 默认是8 可以用1

</

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值