C++的那些事:const用法面面观
作者:网络转载 发布时间:[ 2014/5/5 11:25:07 ] 推荐标签: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只有运行时才知道值
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11