const 常引用

常类型是指使用类型修饰符 const 说明的类型,常类型的变量或对象的值是不能被更新的。

这篇主要说常引用。常引用是指所引用的对象不能被更新。

在实际应用中,常引用往往用来作为函数的形参,这样的参数称为常参数。在C++语言面向对象的程序设计中,引用的使用还是比较多的,其中使用 const 修饰的常引用使用的更多。使用常参数表明该函数不会更新某个参数所指向或所引用的对象,这样,在参数传递过程中就不需要执行复制构造函数,这将会改善程序的运行效率。

示例:

 1 #include <iostream.h>
 2 const int N = 6;
 3 void print(const int *p, int n);
 4 void main()
 5 {
 6     int array[N];
 7     for(int i = 9; i < N; i++)
 8         cin>>array[i];
 9     print(array, N);
10 }
11 void print(const int *p, int n)
12 {
13     for(int i = 0; i < n; i++)
14         cout<<*(p + i);
15 }

 该程序中有一个问题:print() 函数中,实参 array 是一个 int 型数组名,形参是 const 的指针,显然类型不相同,但却没有出现类型错误。这是因为形参虽然指向一个非 const int 型数组,该数组是可以更新的,但在 print() 函数中不能被更新。因此,一个能够更新的变量使用在一个不能被更新的环境中不破坏类型保护,所以不会出现类型不匹配的错误。 

一种类型的变量或对象能够用于另一种类型的变量或对象可以使用的环境,这一特性被称为类型适应。

当你坚持做一件完全正确的事情,有可能在很长一段时间内,你的价值都是零。
原文地址:https://www.cnblogs.com/lweleven/p/const.html