鱼C论坛

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

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

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

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

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

x
C++ 结构体


结构体的概念

假设我们要打印班里 10 个同学的成绩,格式如下:
姓名  成绩
张三  77
李四  88
王五  99

方案一:用二维数组

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

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

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

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

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

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

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

定义结构体类型

定义结构体类型的语法格式如下:
struct 结构体类型名 {
    字段声明;
};

例如:
struct student {
    char name[10];    // 姓名
    int score;    // 成绩
};

注意:

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


结构体变量的定义

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

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

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

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

结构体变量的初始化

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

例如:
student student1 = {"ZhangSan", 77}

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

方法一:
struct 结构体变类型名 {
    字段声明;
} 结构体变量名;

方法二:
struct {
    字段声明;
} 结构体变量名;

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

结构体变量的访问

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

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

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

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

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

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 07:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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