马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
C++ 结构体
结构体的概念
假设我们要打印班里 10 个同学的成绩,格式如下:
方案一:用二维数组
这个方案是不可行的,因为这些信息有着不同的类型。姓名是字符串,而成绩是整型数字。
方案二:每一列用一个一维数组表示,这种方法称为并联数组
可是,这样要保证每位学生信息的正确性又比较难。
实际上,当我们考虑怎么逻辑地组织数据时,应该将一个人的信息项放在一起,保持信息的相关性。
这样的信息结构,在 C++ 中称为结构体。
结构体类型允许把一些变量聚合成一个整体,用一个变量表示。
结构体的成员可以是任意数据类型。
定义结构体类型
定义结构体类型的语法格式如下:
例如:
struct student {
char name[10]; // 姓名
int score; // 成绩
};
注意:
- 字段名可与程序中的变量相同。
- 在不同的结构体中可以有相同的变量名。
- 结构体成员的类型可以是任意的,当然也可以是结构体类型。
结构体变量的定义
结构体类型的变量与普通类型变量的定义一致。
例如,定义了结构体类型 student,则可以使用 student student1; 定义结构体变量 student1。
一旦定义了一个结构体类型的变量,系统在分配内存时就会分配一块连续的空间,依次存放它的每一个成员。
这整块空间的名字就是结构体变量的名字,空间内部还有各自的名字。
结构体变量的初始化
结构体变量的初始化只需挨个写出每一个成员的值即可。
例如:
student student1 = {"ZhangSan", 77}
我们还可以在定义结构体类型的同时定义结构体变量,有两种方法。
方法一:
struct 结构体变类型名 {
字段声明;
} 结构体变量名;
方法二:
区别:前者可以继续用结构体类型名定义结构体变量,而后者没有结构体类型名,只能到此为止。
结构体变量的访问
对结构体变量的访问一般为引用它的成员,成员的表示用 . 号。
其语法格式为 结构体变量名.成员名。
例如 student1.name 就访问了结构体变量 student1 的 name 成员。
如果结构体中还有结构体,则一级一级用 . 号分开。
例如 student1.birthday.year 就访问了 student1 的 birthday 成员的 year 成员。 |