结构体 联合体 枚举类型
枚举类型
在实际生活中有很多对象的属性并不能使用C语言中给出的变量来直观描述,为了使程序更加直观,可读性更强,可以使用枚举类型来描述对象的属性。
枚举类型的定义示例:
enum DAY{
Monday = 1,
Tuesday,
Westhday,
Thursday,
Friday,
Saturday,
Sunday,
};
执行以下程序
#include <stdio.h>
enum DAY{
Monday = 1,
Tuesday,
Westhday,
Thursday,
Friday,
Saturday,
Sunday,
};
int main()
{
enum DAY t;
printf("t.i is: %d\r\n", t.Monday);
printf("t.c is: %c\r\n", t.Tuesday);
printf("t.l is: %ld\r\n", t.Friday);
printf("size of int is : %d\r\n", (int)sizeof(DAY));
return 0;
}
通过这个程序我们可以知道,虽然我们为DAY定义了新的属性,但事实上在内存中的表现依然是数字的形式,只是这样写使程序更易于理解了。
思考一下
我们是否可以通过联合体中的某个元素的地址去访问其它元素?编写程序实现
总结
到这里已经介绍了C语言中的常用数据类型,数据类型在内存中的存储形式需要掌握,每个数据类型所占用的空间大小也要做到心中有数,这样有助于加强对指针的理解。只有当对数据类型的存储方式了然于胸才能做到使用指针的时候信手拈来。
二维数组是比较难于理解的数据类型,比较好的方法就是通过编写代码仔细体会。
结构体、联合体、枚举类型是可以简单理解为一个数据的集合。其中最常用的就是结构体,通常使用结构体是为了对一组或者是一个数据集合进行操作,例如:在某个通信系统中,需要操作一个串口进行通信,而串口的配置则包含几个属性:波特率、端口号、校验位、停止位等,这种情况下就可以构建一个串口的结构体用于集中操作这些属性。
联合体并不常用,因此了解即可。
枚举变量的灵活使用可有效的提升程序的可读性,因此可以特别了解。