当前位置:实例文章 » 其他实例» [文章]手撕自定义类型:结构体,枚举,联合——【C语言】

手撕自定义类型:结构体,枚举,联合——【C语言】

发布人:shili8 发布时间:2025-01-01 19:58 阅读次数:0

**手撕自定义类型:结构体、枚举、联合**

在 C语言中,自定义类型是指我们自己定义的数据类型,它们可以根据具体需求进行设计。其中,结构体(struct)、枚举(enum)和联合(union)都是常见的自定义类型。

### **1. 结构体**

结构体是一种复合数据类型,它可以包含多个不同类型的成员变量。我们可以使用 `struct` 关键字来定义一个结构体。

**示例代码**

c// 定义一个学生结构体typedef struct {
 int id; // 学号 char name[20]; // 名字 float score; // 成绩} Student;

int main() {
 // 创建一个学生对象 Student student;
 // 初始化成员变量 student.id =1;
 strcpy(student.name, "张三");
 student.score =90.5f;
 // 输出成员变量 printf("学号:%d
", student.id);
 printf("名字:%s
", student.name);
 printf("成绩:%.2f
", student.score);
 return0;
}

**注释**

* `typedef` 关键字用于定义一个新类型,相当于 `struct Student { ... };`。
* `struct` 关键字用于定义一个结构体。
* 成员变量之间使用逗号(`,`)分隔。
* 使用 `strcpy` 函数来复制字符串。

### **2. 枚举**

枚举是一种特殊的自定义类型,它可以表示一组有限的值。我们可以使用 `enum` 关键字来定义一个枚举。

**示例代码**
c// 定义一个颜色枚举typedef enum {
 RED =1, // 红色 GREEN =2, // 绿色 BLUE =3 // 蓝色} Color;

int main() {
 // 创建一个颜色变量 Color color;
 // 初始化颜色 color = GREEN;
 // 输出颜色值 switch (color) {
 case RED:
 printf("红色
");
 break;
 case GREEN:
 printf("绿色
");
 break;
 case BLUE:
 printf("蓝色
");
 break;
 default:
 printf("未知颜色
");
 break;
 }
 return0;
}

**注释**

* `typedef` 关键字用于定义一个新类型,相当于 `enum Color { ... };`。
* `enum` 关键字用于定义一个枚举。
* 枚举值之间使用逗号(`,`)分隔。
* 使用 `switch`语句来匹配枚举值。

### **3. 联合**

联合是一种特殊的自定义类型,它可以表示多个不同类型的成员变量。我们可以使用 `union` 关键字来定义一个联合。

**示例代码**
c// 定义一个整数和浮点数联合typedef union {
 int i; // 整数 float f; // 浮点数} IntFloat;

int main() {
 // 创建一个整数和浮点数对象 IntFloat intFloat;
 // 初始化整数值 intFloat.i =10;
 // 输出整数值 printf("整数:%d
", intFloat.i);
 // 初始化浮点数值 intFloat.f =3.14f;
 // 输出浮点数值 printf("浮点数:%.2f
", intFloat.f);
 return0;
}

**注释**

* `typedef` 关键字用于定义一个新类型,相当于 `union IntFloat { ... };`。
* `union` 关键字用于定义一个联合。
* 成员变量之间使用逗号(`,`)分隔。

以上就是关于 C语言自定义类型的基本介绍。结构体、枚举和联合都是常见的自定义类型,它们可以根据具体需求进行设计和使用。

相关标签:c语言开发语言
其他信息

其他资源

Top