Menu
CoddyTech

创建结构体变量

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

声明 struct 类型后,你可以用它创建存储数据的实际变量。创建结构体变量的方式与在 C 中声明其他变量完全相同:先指定数据类型,再写变量名。

创建 struct 变量的语法是:

struct StructureName variableName;

例如,使用上一课中的 Point 结构体:

struct Point p1;
struct Point p2;

这会创建两个变量 p1 和 p2,它们的类型都是 struct Point。每个变量都有自己独立的副本,其中包含结构体中定义的 x 和 y 成员。

你可以像使用 int 或 float 这样的内置类型一样,创建任意数量的 struct 变量。每个 struct 变量都是独立的,其成员可以保存不同的值。创建后,这些变量就可以用来有序地存储坐标数据。

challenge icon

挑战

简单

创建一个 C 程序,演示如何创建不同类型的多个 struct 变量。你的程序应当:

  1. 定义一个名为 Rectangle 的 struct,包含以下成员:
    • 一个整数 width
    • 一个整数 height
  2. 定义一个名为 Student 的 struct,包含以下成员:
    • 一个整数 id
    • 一个大小为 30 的字符数组 name
    • 一个浮点数 gpa
  3. 在 main 函数中,创建以下 struct 变量:
    • 两个名为 rect1 和 rect2 的 Rectangle 变量
    • 三个名为 student1、student2 和 student3 的 Student 变量
  4. 按照以下确切格式,为创建的每个变量打印确认消息:
    • Rectangle variable rect1 created
    • Rectangle variable rect2 created
    • Student variable student1 created
    • Student variable student2 created
    • Student variable student3 created
  5. 按照以下格式打印创建的 struct 变量总数:Total struct variables created: 5
  6. 按照以下格式打印每种类型占用的内存:
    • Memory per Rectangle: [size] bytes
    • Memory per Student: [size] bytes

这个挑战考查你定义多种 struct 类型并创建每种类型的多个变量的能力。每个 struct 变量都是独立的,并且拥有自己的内存空间,这展示了如何在程序中使用 struct 来组织不同类型的数据。

亲手试试

#include <stdio.h>

int main() {
    // TODO: 在这里定义你的结构体 Rectangle
    
    // TODO: 在这里定义你的结构体 Student
    
    // TODO: 在这里创建结构体变量
    
    // TODO: 为每个创建的变量打印确认消息
    
    // TODO: 打印创建的结构体变量总数
    
    // TODO: 使用 sizeof() 打印每种结构体类型的内存占用
    
    return 0;
}
quiz icon自我测试

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

逻辑与流程中的所有课

自己练习: C 在线编译器