c++的const

C语言中是没有const的,一般都使用#define
#define有一个很显著的缺陷就是它在定义的时候不会去检查是否合法,它只是作了一个单纯的字符替换,甚至编译都不会去检查,使用不当则容易出现运行时错误。
可能是出于此考虑吧,C++就引入了一个const来专门用来修饰常量。

const它自然就是修饰常量咯,它修饰的常量必须在定义时初始化,且一经定义就不允许修改了。
注意和javafinal区分一下,final修饰局部变量时是可以先定义后赋初值的,不过在使用前必须要给定初值。

另外const还有一个神奇的用法,就是有时候可以不显式定义。
如果常量定义语句中所要定义的常量是整型,那么类型关键字int可以省略。

比如:

int a = 1,b = 2;
const c = a + b;
const int d = a + b;

这个cd其实是一样的,都是可行的。

当然咯,前面还提到了#define的缺陷,而const显然是会在编译时对常量的合法性进行检查的。

原文地址:https://www.cnblogs.com/yinyoupoet/p/13287464.html