返回介绍

7.1.4 结构体成员的访问

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

定义结构体变量,并对其进行初始化或者赋值后,下面来看看如何访问其成员。C 语言中,使用成员访问运算符来访问结构体变量的各成员,成员访问运算符用英文的点字符“.”来表示。因此,也有人将其形象地称之为点运算符。成员访问运算符的使用格式为:

结构体变量名.成员名

即在结构体变量名与成员名之间使用成员访问运算符“.”,功能就是通过成员访问运算符来访问结构体变量名所表示的结构体变量的指定成员。例如:

p1.name

通过成员访问运算符来访问结构体变量 p1 的 name 成员。下面通过 printf 函数 name 成员打印输出。例如:

printf("Name: %s\n", p1.name);

编译运行程序,结果如下:

Name: Tom

也可以对 name 成员重新赋值,例如:

strcpy(p1.name, "David");
printf("Name: %s\n", p1.name);

由于 name 成员的类型是长度为 20 的字符数组,而数组是不能直接对其进行赋值的。因此,我们利用“string.h”头文件中的 strcpy 函数,将一个字符串复制到指定的字符数组中。在修改 name 成员后,再通过 printf 函数将 name 成员打印输出,重新编译运行程序,结果如下:

Name: David

可见,name 成员所存储的字符串,已从原来的“Tom”,修改成了“David”。

甚至在对结构体变量进行初始化时,也可以使用成员访问运算符,即对结构体变量进行指定初始化的方式。例如:

struct Person p5 = {.name = "Rose", .height = 1.65f};

在初始值列表中,使用了两个成员访问运算符,即对两个指定的成员进行初始化。第一个成员访问运算符会访问到 name 成员并将其值初始化为字符串“Rose”,第二个成员访问运算符会访问到 height 成员,并将其值初始化为 1.65。

最后打印输出 p5 的所有成员。例如:

printf("Name: %s\n", p5.name);
printf("Age: %d\n", p5.age);
printf("Height: %.2f m\n", p5.height);
printf("Weight: %.2f kg\n", p5.weight);

编译运行程序,结果如下:

Name: Rose
Age: 0
Height: 1.65 m
Weight: 0.00 kg

可见,结构体变量 p5 的 4 个成员中,name 成员和 height 成员都被初始化为指定值,而 age 成员和 weight 成员,由于没有指定初始值,因此,被编译器初始化为 0。

也可以在结构体变量 p5 的初始化之后,再为它的另外两个成员进行赋值。例如:

p5.age = 25;
p5.weight = 50.5f;

然后,再使用 printf 函数来打印 p5 的所有成员。编译运行程序,结果如下:

Name: Rose
Age: 25
Height: 1.65 m
Weight: 50.50 kg

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

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

发布评论

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