Menu
CoddyTech

访问结构体成员

本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 41 课,共 63 课。

现在你已经可以创建 struct 变量了,接下来需要学习如何处理其中存储的数据。点运算符(.)是访问和修改 struct 变量中各个成员的关键。

访问结构体成员的语法很简单:

structVariable.memberName

使用 Point 结构体示例,你既可以读取其成员,也可以写入其成员:

struct Point p1;

// 向 struct 成员写入值
p1.x = 10;
p1.y = 20;

// 读取 struct 成员的值
printf("Point coordinates: (%d, %d)\n", p1.x, p1.y);

点运算符的用法与访问其他变量完全相同,你可以在赋值、算术运算、函数调用中使用它,也可以在任何可以使用该类型普通变量的地方使用它。每个成员都像其声明类型的独立变量一样工作,让你能够以有条理且直观的方式操作结构体的数据。

challenge icon

挑战

简单

编写一个 C 程序,演示如何使用点运算符访问和修改结构体成员。你的程序应:

  1. 定义一个名为 Car 的 struct,包含以下成员:
    • 一个整数 year,用于存储制造年份
    • 一个大小为 20 的字符数组 brand,用于存储汽车品牌
    • 一个整数 mileage,用于存储当前里程
    • 一个浮点数 price,用于存储汽车价格
  2. 创建一个名为 myCar 的 Car 变量
  3. 读取以下输入值,并使用点运算符将它们赋给结构体成员:
    • 读取一个表示年份的整数,并将其赋给 myCar.year
    • 读取一个表示品牌的字符串,并将其赋给 myCar.brand
    • 读取一个表示里程的整数,并将其赋给 myCar.mileage
    • 读取一个表示价格的浮点数,并将其赋给 myCar.price
  4. 读取所有值后,执行以下操作:
    • 使用 myCar.mileage += 1000; 将里程增加 1000
    • 使用 myCar.price -= 500.0; 将价格减少 500.0
  5. 使用点运算符访问每个成员,并按照以下精确格式打印汽车信息:
    • Car Details:
    • Year: [year]
    • Brand: [brand]
    • Mileage: [mileage]
    • Price: [price]

这个挑战会考查你对点运算符的理解,包括读取和写入结构体成员。你将练习给结构体成员赋值、对它们执行算术运算,以及访问它们以输出信息。

例如,如果输入为:

2020
Toyota
50000
25000.50

你的输出应为:

Car Details:
Year: 2020
Brand: Toyota
Mileage: 51000
Price: 24500.50

亲手试试

#include <stdio.h>
#include <string.h>

// TODO: 在这里定义 Car 结构体

int main() {
    // TODO: 创建一个名为 myCar 的 Car 变量
    
    // 读取输入值
    int year;
    char brand[20];
    int mileage;
    float price;
    
    scanf("%d", &year);
    scanf("%s", brand);
    scanf("%d", &mileage);
    scanf("%f", &price);
    
    // TODO: 使用点运算符将输入值赋给结构体成员
    
    // TODO: 按要求修改里程数和价格
    
    // TODO: 使用点运算符输出汽车详情
    printf("Car Details:\n");
    // 在这里输出年份、品牌、里程数和价格
    
    return 0;
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

逻辑与流程中的所有课

自己练习: C 在线编译器