目录
一、结构体的基本概念
1. 定义与作用
结构体(
struct
)是一种用户自定义的复合数据类型,用于将多个不同类型的变量组合成一个逻辑单元。核心用途:数据聚合、简化复杂数据管理、面向对象编程的轻量化实现。
2. 与 class
的区别
特性 | struct |
class |
---|---|---|
默认访问权限 | public |
private |
默认继承权限 | public |
private |
惯用场景 | 数据聚合(无/简单行为) | 封装数据与复杂行为 |
二、结构体的定义与使用
1. 基本语法
结构体是一个可以包含多种数据类型的容器,包含的数据可以自定义。
struct 结构体名 {
数据类型 成员1;
数据类型 成员2;
// ...
}; // 注意分号不能省略
示例:
struct Node {
int id;
string name;
int yuwen;
};
2. 初始化与访问
// 默认初始化(成员值不确定)
Node n;
// 访问成员
n.id = 1;
// 初始化方式1
Node n;
n.id = 1;
n.name = "xiaoli";
n.yuwen = 88;
cout << n.id << ' ' << n.name << ' ' << n.yuwen << '\n';
// 初始化方式2
Node p1 = { 1, "xiaoli",88 };
cout << p1.id << ' ' << p1.name << ' ' << p1.yuwen << '\n';
Point p2 {30, 40}; // 部分初始化(未初始化的成员为默认值)
3. 输入
// 定义学生结构体(建议更明确的命名如 Student)
struct Node { // 命名
int id; // 学生学号
string name; // 学生姓名
int yuwen; // 语文成绩
} stu[1000]; // 全局固定大小数组(存在设计缺陷)
int main() {
int n;
cout << "请输入学生人数:" << endl;
cin >> n; // 未校验输入合法性
// 输入循环(存在数组越界风险)
for (int i = 1; i <= n; i++) { /
stu[i].id = i;