常量是在程序运行时,不会被修改的量。
使用常量有以下几个好处:
(1)增强程序的可读性。
直接使用数字或是字符串,程序员可能会忘记或是弄混其意思。而使用有
意义的常量代表这些数字或是字符串,显然会更能增加程序的可读性。
如:#define ERROR 0,则在程序中使用 "return ERROR;"要比使用"return 0;"
更能让人理解和明白。
(2)达到已改全改的目的
在程序中,倘若我们想要修改某一个使用频繁但程序运行过程中又不改变
其值的变量。使用常量是最好的方法,如:MAXSIZE代表数组的大小,
若#define MAXISZE 100,则以后需要修改数组最大容量时,直接修改
#define MAXISZE 100就行,无需到处去寻找多有引用MAXISZE变量的地方。
(3)减少出错率。
如果很多地方用到像PI(3.14159)这样的常量,难保输入错误,尤其复杂
的很长的字符串时。使用常量则可以很好的减少这个错误。
在C++中,有两种定义常量的方法:#define、const。
(1)const常量有数据类型,#define定义的宏常量没有数据类型。
编译器会对const常量进行类型安全检查。
而对#define只是在编译前进行简单字符替换,没有类型安全检查,并且在字符替
换可能会产生意料不到的错误(边际效应) 。
(2)可以使用某些集成化调试工具对const常量进行调试,但无法对宏常量进行调试。
(3)#define定义的常量是全局的,而在C++的类中,可能需要一些局部的常量,这时只能使用const常量。