“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,并打印了两个成员的值。请注意,当我们更改一个成员的值时,其他成员的值也会相应地改变。

扫描二维码关注公众号,回复: 16397919 查看本文章

枚举

  • 枚举是一种用户定义的数据类型,它允许我们将一组具有相关性的命名值分配给一个类型。
  • 枚举的声明使用关键字 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 语言程序中使用它们。如有不足之处,欢迎在评论区指出~

猜你喜欢

转载自blog.csdn.net/C_Small_Cai/article/details/130211055
今日推荐