const有哪些作用
常类型也称为const类型,是指使用类型修饰符const说明的类型。const是C和C++中常见的关键字,在C语言中,它主要用于定义变量为常类型以及修饰函数参数与返回值,而在C++中还可以修饰函数的定义,定义类的成员函数。常类型的变量或对象的值是不能更新的。
一般而言,const有以下几个方面的作用:
1)定义const常量,具有不可变性。
2)进行类型检查,使编译器对处理内容有更多了解,消除一些隐患。
3)避免意义模糊的数字出现,同样可以很方便地进行参数检查和修改。同宏定义一样,可以做到不变则已,一变都变。
4)保护被修饰的东西,防止被意外修改,增强了程序的健壮性。
5)为函数重载提供参考。
6)节省空间,避免不必要的内存分配。const定义的常量在程序运行过程中只有一份复制品,而#define定义的常量在内存中有若干个复制品。
7)提高了程序的运行效率。编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,使得它成为一个编译期间的常量,没有了存储和读内存操作,使得它的运行效率也很高。
引申1:什么时候需要使用const关键字?
1)修饰一般常量。
2)修饰常数组。
3)修饰常对象。定义常对象时,同样要进行初始化,并且该对象不能再被更新,修饰符const可以放在类名后面,也可以放在类名前面。
4)修饰常指针。
5)修饰常引用。
6)修饰函数的常参数。防止使用者无意的或错误的修改。
7)修饰函数的返回值。
8)修饰类的成员函数
9)在另一连接文件中引用const常量:extern const int i;
引申2:什么是常引用?
const引用的意思是指向const对象的引用,非const引用表示指向非const类型的引用。如果既要利用引用提高程序的效率,又要保护传递给函数的数据在函数中不被改变,就是用常引用。
常引用的主要用途如下:
1)用做普通变量的只读属性的别名。通常这个别名只能获得这个变量的值,而不能改变这个变量的值。
2)用于函数的形参。常引用做形参,可以确保在函数内不会改变实参的值,所以参数传递时尽量使用常引用类型。