
1.数值常量:
例如 a = b + 5;,这里的5就是常量。
在常量后加上恰当的后缀可以表示特定类型的常量,例如1.0f是float常量。
不带后缀的浮点数默认类型为double。
2.符号常量:
用#define替换为数值常量,只存在于编译期。
例如
#define a 5
定义了一个符号常量a,编译时预处理器会把这之后的a替换为5。
3.const数据类型:
例如定义一个int常量:const int a = 5;,这里 a 为 const int 类型。
类型有const修饰时,编译器会对修改此数据的行为视为编译错误。
因此把const数据作为常量使用。
另外还有字符/字符串字面量:类似"a"或"aaa"的字符/字符串为字面量。
字面量在c语言中不是常量(在c++中是常量),因为c语言标准中定义了修改其中内容的操作为“未定义行为”,修改操作可能引起不确定的后果。
如果约定不用指针等方式修改其中内容,可以把字面量当做常量使用。
用前置的const修饰指针,可以限制指针修改其中内容,例如const char* str = "aa";,指针str指向的内容无法通过str修改,可以把str指向的内容视作常量字符串。
用#define替换得到的字面量是匿名的,也可以当做常量使用。
原文地址:https://www.weidianyuedu.com/content/1520859151751.html