在C语言中,常量可以是整数常量、浮点数常量、字符常量、字符串常量以及枚举常量。
- 整数常量:可以是十进制、八进制或十六进制的数字序列。例如:123、0123、0x123。
- 浮点数常量:可以是带有小数点的数字序列,也可以使用指数形式。例如:3.14、0.123、1.23e-4。
- 字符常量:由单引号括起来的单个字符。例如:‘A’、‘b’、‘9’。
- 字符串常量:由双引号括起来的字符序列。例如:“Hello”、“123”。
- 枚举常量:定义在枚举类型中的常量。例如:enum Color {RED, GREEN, BLUE}; 中的RED、GREEN、BLUE。
要判断一个常量是否合法,可以根据以下规则:
- 整数常量必须符合整数的表示范围,不能超出int、long等类型的取值范围。
- 浮点数常量必须符合浮点数的表示规范,包括小数点位置、指数形式等。
- 字符常量只能包含一个字符,并且必须用单引号括起来。
- 字符串常量必须用双引号括起来,并且可以为空字符串。
- 枚举常量必须定义在合法的枚举类型中。
在编译过程中,如果常量不符合以上规则,则会产生编译错误。因此,编译器会负责判断常量的合法性。