定义与使用结构体
学习如何将相关变量组合成结构体,并在实际应用中使用 struct
定义与使用结构体 是 CoddyKit 上的免费 C Academy 课时。 这是第 1 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C Academy 课程共包含 3 节课。
定义和使用结构
定义和使用结构
结构(struct)允许我们使用一个名称将相关变量组合在一起。
在本课中,您将学习:
- 如何定义和使用结构。
- 如何访问结构成员。
- 如何将结构传递给函数。

什么是结构?
什么是结构?
结构是一种用户定义的数据类型,用于组合不同的变量。
结构定义示例:
struct Person {
char name[50];
int age;
float height;
};
这里,Person 结构存储了姓名、年龄和身高。
声明和初始化结构
声明和初始化结构
定义结构后,我们可以声明并初始化它:
struct Person p1 = {"Alice", 25, 5.7};
我们也可以稍后为其赋值:
p1.age = 30;访问结构成员
访问结构成员
可以使用点(.)运算符访问结构成员。
示例:
printf("Name: %s\n", p1.name);
这会打印存储在结构中的姓名。
示例:使用结构
示例:使用结构
此程序演示了如何定义、初始化和访问结构。
#include <stdio.h>
struct Person {
char name[50];
int age;
float height;
};
int main() {
struct Person p1 = {"Alice", 25, 5.7};
printf("Name: %s\n", p1.name);
printf("Age: %d\n", p1.age);
printf("Height: %.1f\n", p1.height);
return 0;
}指向结构的指针
指向结构的指针
我们可以使用指向结构的指针来提高内存管理效率。
示例:
struct Person *ptr = &p1;
可以使用箭头(->)运算符访问成员:
printf("%s", ptr->name);示例:结构指针
示例:结构指针
此程序演示了如何使用指针访问结构成员。
#include <stdio.h>
struct Person {
char name[50];
int age;
};
int main() {
struct Person p1 = {"Bob", 30};
struct Person *ptr = &p1;
printf("Name: %s\n", ptr->name);
printf("Age: %d\n", ptr->age);
return 0;
}将结构传递给函数
将结构传递给函数
可以按值或按引用将结构传递给函数。
示例(按引用传递):
void update(struct Person *p) {
p->age += 1;
}
按引用传递可以避免复制大型结构。
总结
总结
在本课中,您学习了:
- 如何定义和使用结构。
- 如何访问结构成员。
- 如何将指针与结构结合使用。
接下来,我们将探索 C 语言中的联合和内存效率!

常见问题解答
「定义与使用结构体」课时是免费的吗?
是的 — 「定义与使用结构体」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C Academy 课程的其余内容,请升级到 CoddyKit PRO。 C Academy 课程共包含 3 节课。
「定义与使用结构体」这节课中我会学到什么?
学习如何将相关变量组合成结构体,并在实际应用中使用 struct 你通过在浏览器中直接运行的动手代码来练习 C Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 C Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 C Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 3 节。
「定义与使用结构体」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 C Academy 课中编写并运行代码吗?
能。每节 C Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。