Menu
CoddyTech

声明结构体

本课属于 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。声明后,你可以在程序中使用这种结构体类型来创建变量,以有条理的方式存储坐标信息。

challenge icon

挑战

简单

创建一个 C 程序,定义一个 struct 来表示图书馆系统中的一本书。你的程序应当:

  1. 定义一个名为 Book 的 struct,其中包含以下成员:
    • 一个整数 id,用于存储图书的识别编号
    • 一个大小为 50 的字符数组 title,用于存储图书的标题
    • 一个整数 pages,用于存储页数
    • 一个浮点数 price,用于存储图书的价格
  2. 定义 struct 后,打印确认消息:Book struct defined successfully!
  3. 使用 sizeof() 以以下格式打印 Book struct 的大小(单位为字节):Size of Book struct: [size] bytes
  4. 分别打印每个成员的大小:
    • Size of id: [size] bytes
    • Size of title: [size] bytes
    • Size of pages: [size] bytes
    • Size 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;
}
quiz icon自我测试

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

逻辑与流程中的所有课

自己练习: C 在线编译器