返回介绍

7.5 本章小结

发布于 2025-04-11 22:33:03 字数 1343 浏览 0 评论 0 收藏 0

C 语言中,结构体属于复合数据类型。结构体可以拥有多个成员,各成员的数据类型可以各不相同。因此,它非常适合于拥有多属性的对象进行存储。

定义结构体,需要使用“struct”关键字。并且在定义结构体变量时,不要省略该关键字,即数据类型为“struct 结构体名”。

定义结构体变量有 3 种方式:先定义结构体类型,再定义结构体变量、在定义结构体类型的同时定义结构体变量和定义无名结构体类型的结构体变量。

对结构体变量进行初始化时,也可以采用全部初始化、部分初始化和指定初始化 3 种方式。同类型的结构体变量之间可以相互赋值。

C 语言中,使用成员访问运算符来访问结构体变量的各成员,成员访问运算符用英文的点字符“.”来表示。因此,也有人将其形象地称之为点运算符。

可以通过 sizeof 运算符来获取结构体的大小,结构体的大小是所有成员大小之和,但很多情况下,由于内存对齐的原因,结构体的大小会大于各成员大小之和。

指针可以指向一个对象,而若将结构体视为一个对象的话,就可以定义出指向结构体的指针。可以通过间接成员访问运算符来访问指针所指向的结构体变量的成员。间接成员访问运算符由短横线字符和大于号字符构成,即“->”,两个字符必须连在一起,中间不可有间隔或其他字符出现。由于其形状像一个箭头,因此,也被称为箭头运算符。

将结构体作为数组的元素类型,就可以定义出结构体数组。

可以将结构体变量、结构体指针作为函数的参数或返回值。

在 C 语言中,有一个和结构体非常像的数据类型,它的名字叫作联合体,也被称为共用体或者公用体。定义联合体,需要使用“union”关键字。联合体的所有成员都使用同一段内存空间,联合体大小即为联合体中最大的那个成员大小。

在一个联合体中,某一时刻,只能存储某一成员的值。对同一个联合体变量,按不同的成员可以访问到不同字节数的内存数据。

在对联合体变量进行初始化的时候,只应对一个成员进行初始化,即在初始化列表中只放有一个初始值。在默认情况下,会将这个初始值初始化给联合体变量的第一个成员。如果想对其他位置成员进行初始化,则可以通过指定初始化方式。

和结构体一样,可以将一个联合体变量直接初始化或赋值给同类型的另一个联合体变量。

使用枚举类型,可以提高程序代码的健壮性和可读性。定义枚举需要使用到关键字“enum”。默认情况下,枚举成员是一个整型值,其第一个枚举成员的值为 0,而后续枚举成员的值为其前一个枚举成员的值加 1。

由于枚举成员是一个常量,因此,可以将其作为定义数组的长度大小,也可以将其作为一个整型值初始化或赋值给一个整型变量,甚至将其作为表达式的一部分。

C 语言中,可以将枚举成员视为整型常量,而将枚举变量视为整型变量。因此,可以将一个整型值初始化或者赋值给枚举变量。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。