C语言自定义类型全解析
在 C 语言中,我们可以通过使用结构体或枚举等语言特性来自定义新的数据类型。本篇文章将全面介绍和解析 C 语言的自定义类型。
结构体
什么是结构体
结构体是一个由若干个不同类型的数据组成的复合型数据类型,可以将它们想象为一个新的数据类型,它的内部成员可以是任意的 C 语言基本数据类型,也可以是结构体,甚至是数组。结构体的使用可以帮助我们轻松地组织和管理大量的数据。
结构体的定义
结构体定义包括两个部分:结构体声明和结构体定义。结构体声明可以在头文件中进行,而结构体定义放在函数体之外,全局化一个新的类型,让程序能够使用。结构体的定义格式如下:
struct 结构体名称
{
类型成员1 成员1名称;
类型成员2 成员2名称;
...
类型成员n 成员n名称;
};
其中 struct
是关键字,结构体名称
是用户自定义的名称,可以是一个变量标识符。类型成员1 / 2/ ... /n
表示结构体成员的数据类型,成员1名称 / 成员2名称 / ... / 成员n名称
表示结构体成员的名称。
结构体的示例
下面我们定义一个结构体用来记录学生的姓名和成绩:
#include <stdio.h>
// 定义结构体类型 student
struct student
{
char name[20];
float score;
} stu1, stu2; // 定义结构体变量 stu1 和 stu2
int main()
{
// 结构体变量 stu1 赋值
strcpy(stu1.name, "Tom");
stu1.score = 90.5;
// 结构体变量 stu2 赋值
strcpy(stu2.name, "Mary");
stu2.score = 85;
// 输出结构体变量的值
printf("name=%s score=%.1f\n", stu1.name, stu1.score);
printf("name=%s score=%.1f\n", stu2.name, stu2.score);
return 0;
}
运行结果:
name=Tom score=90.5
name=Mary score=85.0
枚举
什么是枚举
枚举是一种特殊的数据类型,用于限定某个变量只能取特定的值,这些值称为枚举常量。在 C 语言中,枚举常量属于整型数据类型,可以直接使用。枚举常量一般使用大写字母表示,便于区分。枚举的使用可以使代码更加易于阅读和维护。
枚举的定义
枚举的定义格式如下:
enum 枚举名称
{
枚举常量1,
枚举常量2,
...
枚举常量n
};
其中,enum
是关键字,枚举名称
是用户自定义的名称,可以是一个变量标识符。枚举常量1 / 2 / ... / n
表示枚举常量的名称,可以自由定义。枚举常量默认从 0 开始递增,也可以通过指定初值来进行设置。枚举常量可以使用在 switch 语句中,提高程序可读性。
枚举的示例
下面我们定义一个枚举类型用于记录星期几:
#include <stdio.h>
// 定义枚举类型 weekday
enum weekday
{
MONDAY = 1,
TUESDAY,
WEDNESDAY,
THURSDAY,
FRIDAY,
SATURDAY,
SUNDAY
} day;
int main()
{
// 枚举变量 day 赋值
day = FRIDAY;
// 输出枚举变量的值
printf("day=%d\n", day);
return 0;
}
运行结果:
day=5
总结
通过本文的介绍,我们可以了解到 C 语言自定义类型的两种常见形式:结构体和枚举,并学习了它们的定义和使用方法。我们可以结合实际需求,选择合适的自定义类型,来提高程序设计的可读性和可维护性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言自定义类型全解析 - Python技术站