c++的const
C
语言中是没有const
的,一般都使用#define
#define
有一个很显著的缺陷就是它在定义的时候不会去检查是否合法,它只是作了一个单纯的字符替换,甚至编译都不会去检查,使用不当则容易出现运行时错误。
可能是出于此考虑吧,C++
就引入了一个const
来专门用来修饰常量。
const它自然就是修饰常量咯,它修饰的常量必须在定义时初始化,且一经定义就不允许修改了。
注意和java
的final
区分一下,final
修饰局部变量时是可以先定义后赋初值的,不过在使用前必须要给定初值。
另外const
还有一个神奇的用法,就是有时候可以不显式定义。
如果常量定义语句中所要定义的常量是整型,那么类型关键字int
可以省略。
比如:
int a = 1,b = 2;
const c = a + b;
const int d = a + b;
这个c
和d
其实是一样的,都是可行的。
当然咯,前面还提到了#define的缺陷,而const显然是会在编译时对常量的合法性进行检查的。