鱼C论坛

 找回密码
 立即注册
查看: 2053|回复: 0

[技术交流] C++ 结构体

[复制链接]
发表于 2020-1-15 11:42:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
C++ 结构体


结构体的概念

假设我们要打印班里 10 个同学的成绩,格式如下:

  1. 姓名  成绩
  2. 张三  77
  3. 李四  88
  4. 王五  99
复制代码


方案一:用二维数组

这个方案是不可行的,因为这些信息有着不同的类型。姓名是字符串,而成绩是整型数字。

方案二:每一列用一个一维数组表示,这种方法称为并联数组

可是,这样要保证每位学生信息的正确性又比较难。

实际上,当我们考虑怎么逻辑地组织数据时,应该将一个人的信息项放在一起,保持信息的相关性。

这样的信息结构,在 C++ 中称为结构体。

结构体类型允许把一些变量聚合成一个整体,用一个变量表示。

结构体的成员可以是任意数据类型。

定义结构体类型

定义结构体类型的语法格式如下:

  1. struct 结构体类型名 {
  2.     字段声明;
  3. };
复制代码


例如:

  1. struct student {
  2.     char name[10];    // 姓名
  3.     int score;    // 成绩
  4. };
复制代码


注意:

  • 字段名可与程序中的变量相同。
  • 在不同的结构体中可以有相同的变量名。
  • 结构体成员的类型可以是任意的,当然也可以是结构体类型。


结构体变量的定义

结构体类型的变量与普通类型变量的定义一致。

例如,定义了结构体类型 student,则可以使用 student student1; 定义结构体变量 student1。

一旦定义了一个结构体类型的变量,系统在分配内存时就会分配一块连续的空间,依次存放它的每一个成员。

这整块空间的名字就是结构体变量的名字,空间内部还有各自的名字。

结构体变量的初始化

结构体变量的初始化只需挨个写出每一个成员的值即可。

例如:

  1. student student1 = {"ZhangSan", 77}
复制代码


我们还可以在定义结构体类型的同时定义结构体变量,有两种方法。

方法一:

  1. struct 结构体变类型名 {
  2.     字段声明;
  3. } 结构体变量名;
复制代码


方法二:

  1. struct {
  2.     字段声明;
  3. } 结构体变量名;
复制代码


区别:前者可以继续用结构体类型名定义结构体变量,而后者没有结构体类型名,只能到此为止。

结构体变量的访问

对结构体变量的访问一般为引用它的成员,成员的表示用 . 号。

其语法格式为 结构体变量名.成员名

例如 student1.name 就访问了结构体变量 student1 的 name 成员。

如果结构体中还有结构体,则一级一级用 . 号分开。

例如 student1.birthday.year 就访问了 student1 的 birthday 成员的 year 成员。

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-17 03:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表