关键字的秘密
专题一:关键字的秘密。包括以下章节:
- 基本数据类型分析
- auto,register,static分析
- if,switch,do,while,for分析
- goto,void,extern,sizeof分析
- const,volatile分析
- struct,union分析
- enum,typedef分析
枚举类型使用方法
- enum是一种自定义类型(struct、union都是自定义类型)
- enum默认第一个值为0,下一个值依次加1
- enmu类型的变量只能取定义时的离散值(int型)
#include<stdio.h>
enum Color
{
GREEN,
BLUE = 2,
RED
};
int main()
{
//printf("%d\n", &GREEN);编译报错,enum时真正意义上的常量,不能取地址。0不能取地址
printf("%d\n", GREEN);
printf("%d\n", BLUE);
printf("%d\n", RED);
return 0;
}
结果:
枚举类型和define区别
- #define宏常量只是简单的值替换,枚举常量是真正意义上的常量
- #define宏常量无法被调试,枚举常量可以
- #define宏常量无类型信息,枚举常量是一种特定类型的常量
typedef
- typedef用于给一个已经存在的类型重命名
- typedef没有产生新的类型
- typedef重定义的类型不能进行unsigned和signed扩展
typedef和#define区别
#include<stdio.h>
typedef char* PCHAR;
#define DCHAR char*
int main()
{
char c;
PCHAR p1, p2;// 等价于(char*) p1, p2;
p1 = &c;
p2 = &c;
DCHAR d1, d2;//等价于char* p1,p2;p1是指针char*,p2是char类型
d1 = &c;
d2 = &c;
return 0;
}
打印结果: