声明结构体
本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 39 课,共 63 课。
现在你已经了解了 struct 是什么,接下来该学习如何创建自己的结构类型了。在 C 中声明 struct 时,需要遵循特定的语法,以定义自定义数据类型的蓝图。
声明 struct 的基本语法是:
struct StructureName {
datatype member1;
datatype member2;
// ... 更多成员
};各部分的作用如下:先写 struct 关键字,再写结构体的名称,然后在花括号内列出所有成员变量。每个成员的声明方式都和普通变量一样,包含数据类型和名称。别忘了在右花括号后加分号!
例如,要创建一个表示二维空间中某个点的结构体:
struct Point {
int x;
int y;
};这个声明会创建一种名为 struct Point 的新数据类型,其中包含两个整数成员:x 和 y。声明后,你可以在程序中使用这种结构体类型来创建变量,以有条理的方式存储坐标信息。
挑战
简单创建一个 C 程序,定义一个 struct 来表示图书馆系统中的一本书。你的程序应当:
- 定义一个名为
Book的struct,其中包含以下成员:- 一个整数
id,用于存储图书的识别编号 - 一个大小为 50 的字符数组
title,用于存储图书的标题 - 一个整数
pages,用于存储页数 - 一个浮点数
price,用于存储图书的价格
- 一个整数
- 定义 struct 后,打印确认消息:
Book struct defined successfully! - 使用
sizeof()以以下格式打印Bookstruct 的大小(单位为字节):Size of Book struct: [size] bytes - 分别打印每个成员的大小:
Size of id: [size] bytesSize of title: [size] bytesSize of pages: [size] bytesSize of price: [size] bytes
这个挑战会测试你对 struct 声明语法的理解,包括正确使用 struct 关键字、使用合适的数据类型声明成员,以及在右花括号后添加分号。你还将了解 C 如何使用 sizeof() 运算符为 struct 成员分配内存。
请记住,具体的大小可能因系统架构而异,但 struct 定义语法必须正确,这样程序才能成功编译并运行。
亲手试试
#include <stdio.h>
int main() {
// TODO:在这里定义你的 Book 结构体
// 打印确认消息
printf("Book struct defined successfully!\n");
// TODO:打印 Book 结构体及其成员的大小
return 0;
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: C 在线编译器