创建结构体变量
本课属于 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 变量都是独立的,其成员可以保存不同的值。创建后,这些变量就可以用来有序地存储坐标数据。
挑战
简单创建一个 C 程序,演示如何创建不同类型的多个 struct 变量。你的程序应当:
- 定义一个名为
Rectangle的struct,包含以下成员:- 一个整数
width - 一个整数
height
- 一个整数
- 定义一个名为
Student的struct,包含以下成员:- 一个整数
id - 一个大小为 30 的字符数组
name - 一个浮点数
gpa
- 一个整数
- 在 main 函数中,创建以下 struct 变量:
- 两个名为
rect1和rect2的Rectangle变量 - 三个名为
student1、student2和student3的Student变量
- 两个名为
- 按照以下确切格式,为创建的每个变量打印确认消息:
Rectangle variable rect1 createdRectangle variable rect2 createdStudent variable student1 createdStudent variable student2 createdStudent variable student3 created
- 按照以下格式打印创建的 struct 变量总数:
Total struct variables created: 5 - 按照以下格式打印每种类型占用的内存:
Memory per Rectangle: [size] bytesMemory per Student: [size] bytes
这个挑战考查你定义多种 struct 类型并创建每种类型的多个变量的能力。每个 struct 变量都是独立的,并且拥有自己的内存空间,这展示了如何在程序中使用 struct 来组织不同类型的数据。
亲手试试
#include <stdio.h>
int main() {
// TODO: 在这里定义你的结构体 Rectangle
// TODO: 在这里定义你的结构体 Student
// TODO: 在这里创建结构体变量
// TODO: 为每个创建的变量打印确认消息
// TODO: 打印创建的结构体变量总数
// TODO: 使用 sizeof() 打印每种结构体类型的内存占用
return 0;
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
逻辑与流程中的所有课
自己练习: C 在线编译器