把相关的数据装进一个“盒子”——自定义自己的类型。
. 访问成员;| 写法 | 含义 | 结果 |
|---|---|---|
struct Student{...}; | 定义类型(别漏分号) | 得到新类型 |
Student s; | 创建变量 s | s 是一份结构体 |
s.id = 1001; | 给成员赋值 | .点 访问 |
s.name | 读成员 | 取到值 |
struct Student{...} 后面忘了 ;,编译直接报错。这是初学者最常犯的一条。struct Student 是类型(像 int),Student s 是变量。类型不占内存,变量才占。医院挂号表上,姓名、年龄、病历号、过敏史排在一起——一个患者的全部信息被“打包”。结构体就是这个登记表:把属于同一对象的字段归拢。
好处也像登记表:拿着“一张表”就能代表一个人,而不是散落一地的小纸条。C++ 里我们把这种“打包”叫聚合,是面向对象思想的起点。
struct Student{ int id; string name; } 时,末尾的 ; 需要吗?Student s;,要把 s 的分数改成 95,哪个写法对?
s.score = 95;——结构体变量用 .(点)访问成员。注意:s.score=95; 是赋值成员;struct 只是定义类型时用一次,访问成员始终用变量名 + 点。