再学C++(一):C++中类与结构体的区别
目录
- 一、C中结构体
- 二、C++中结构体
- 三、C++中类
一、C中结构体
在介绍C++中结构体和类的区别之前,先介绍下C语言中的结构体。
相对于数组,结构体可以存储不同数据类型的变量,例如在学生信息登记表中,姓名为字符型,学号为整型或字符型,年龄为整型,性别为字符型,成绩为整型。
结构体的声明方式:
struct Student{char *name_;//姓名int num_;//学号char sex_;//性别float score_;//成绩
};
struct Student stu;//结构体变量
stu
是结构体变量,包含四个结构体成员变量name_
、num_
、sex_
、score_
。
在C语言中,结构体内可以定义普通变量成员、数组成员、结构体成员、指针成员和函数指针成员, 但 是 不 能 定 义 函 数 成 员 , 且 没 有 访 问 控 制 属 性 的 概 念 \color {red}但是不能定义函数成员,且没有访问控制属性的概念 但是不能定义函数成员,且没有访问控制属性的概念。
C中结构体大小
1、空结构体大小为0.
2、非空结构体
(1)确定实际对齐单位,由一下三个因素决定
a.CPU周期
WIN VsCode Qt 默认8字节对齐
Linux 32位:默认4字节对齐 64位:默认8字节对齐
b.结构体最大成员(基本数据类型变量)
c.预编译指令#pragma pack(n)手动设置 n–只能填1,2,4