> 文章列表 > “C语言之美:结构体、联合体和枚举的魔法“

“C语言之美:结构体、联合体和枚举的魔法“

“C语言之美:结构体、联合体和枚举的魔法“

目录

结构体

联合体

枚举


结构体

  • 结构体是一种用户定义的数据类型,它允许我们将不同类型的数据组合在一起,形成一个单独的实体。
  • 结构体由多个元素(也称为成员)组成,并且每个元素可以是不同的数据类型,例如整数、浮点型、字符等等。
  • 结构体的声明使用关键字 struct,并且通常定义在函数外部。

来看一个简单的例子:

#include <stdio.h> struct Student
{    char name[50];int age; float height; 
}; int main(){  struct Student s;strcpy(s.name, "Tom");s.age = 18; s.height = 1.75;printf("Name: %s\\n", s.name); printf("Age: %d\\n", s.age);printf("Height: %f\\n", s.height); return 0; 
}

在上面的代码中,我们定义了一个名为 Student 的结构体,它由三个元素组成:姓名、年龄和身高。在主函数中,我们创建了一个 Student 类型的变量 s,并将其成员初始化为一些值。最后,我们使用 printf() 函数打印了这些值。

联合体

  • 联合体是另一种用户定义的数据类型,它与结构体类似,但只能同时保存其中一个成员。
  • 联合体的声明使用关键字 union,并且通常也定义在函数外部。

例子如下:

#include <stdio.h> union Number 
{     int integer;float decimal;}; int main() 
{    union Number n; n.integer = 10; printf("Integer: %d\\n", n.integer); n.decimal = 3.14; printf("Decimal: %f\\n", n.decimal);printf("Integer: %d\\n", n.integer); return 0; 
}

在上面的代码中,我们定义了一个名为 Number 的联合体,它由两个成员组成:整数和浮点数。在主函数中,我们创建了一个 Number 类型的变量 n,并将其整数成员初始化为 10。之后,我们将其浮点数成员初始化为 3.14,并打印了两个成员的值。请注意,当我们更改一个成员的值时,其他成员的值也会相应地改变。

枚举

  • 枚举是一种用户定义的数据类型,它允许我们将一组具有相关性的命名值分配给一个类型。
  • 枚举的声明使用关键字 enum,并且通常定义在函数外部。

老规矩,上代码:

#include <stdio.h>enum Weekday{ Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday }; int main(){    enum Weekday today; today = Wednesday; printf("Today is %d\\n", today); return 0;}

在上面的代码中,我们定义了一个名为 Weekday 的枚举类型,它由七个值组成:星期一到星期日。在主函数中,我们创建了一个 Weekday 类型的变量 today,并将其赋值为星期三。最后,我们使用 printf() 函数打印了 today 的值。

希望这篇博客能够帮助初学者理解结构体、联合体和枚举的概念以及如何在 C 语言程序中使用它们。如有不足之处,欢迎在评论区指出~