注意:
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
</
C++结构体与内存管理

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

被折叠的 条评论
为什么被折叠?



