C++语言中const 关键字用法总结 一、const 是什么 在 C/C++ 语言中,const 关键字是一种修饰符。所谓“修饰符”,就是在编译器进行编译的过程中,给编译器一些“要求”或“提示”,但修饰符本身,并不产生任何实 际代码。就 const 修饰符而言,它用来告诉编译器,被修饰的这些东西,具有“只读”的特点。在编译的过程中,一旦我们的代码试图去改变这些东西,编译器就应该给出错误提示。 所以,const 修饰符的作用主要是利用编译器帮助我们检查自己代码的正确性。我们使用const 在源码中标示出“不应该改变”的地 方,然后利用编译器,帮助我们检查这些地方是否真的没有被改变过。如果我们不小心去修改了这些地方,编译器就会报错,从而帮助我们纠正错误。使用 const 和不使用const,对于最终编译产生的代码并没有影响。 虽然 const 对于最终代码没有影响,但是尽可能使用const,将帮助我们避免很多错误,提高程序正确率。 二、const 可以修饰哪些对象 在上面已经提到过了,const 是一种修饰符,那它可以作为哪些对象的修饰符呢?下面列举了一些 C/C++中用到 const 的地方。 1,const 变量 2,const 指针 3,const 引用 4,const 类 5,类的 const 成员变量 6,类的 const 成员函数 7,const 修饰函数的形参与返回值 下面我们分别讨论上面几种情况下,const 的用法。 三、const 与变量 当一个变量被 const 修饰后,具有以下几个特点: 1)该变量只能读取不能修改。(编译器进行检查) 2)定义时必须初始化。 3)C++中喜欢用const 来定义常量,取代原来 C 风格的预编译指令 define。 1 const int var; // Error:常量 变量"var"需要初始化设定项 2 const int var1 = 42; 3 var1 = 43; // Error:表达式必须是可以修改的左值 上面代码中第一行和第三行都有错误,注释便是编译器给出的错误提示。 另外注意,在使用const 变量作为数组的下标时,变量的值一定要是一个常量表达式(在编译阶段就能计算得到结果)。 1 const int sz = 42; 2 int iAr[sz]; 3 const int sz1 = size(); // size()必须是一个返回常量的函数 4 int iAr1[sz1]; 5 6 int var = 42; 7 const int sz2 = var; 8 int iAr2[sz2]; // error:sz2 只有运行时才知道值 四、const 与引用 我们知道,引用必须在定义的时候赋值,这样就会所引用的变量绑定在一起并作为...