关于const型引用与非const型引用

来源:互联网 发布:apache ab 多个url 编辑:程序博客网 时间:2024/06/06 07:01

1:引用是被引用变量的别名,只要被引用变量和引用变量之一合法的改变,另外一个变量就会改变。

#include <iostream>using namespace std;int main(){int i = 2000;const int & refI = i;i = 10;cout<<"refI = "<<refI<<endl;return 0;}

上述代码的运行结果是:


这里还有一个比较有趣的例子,虽然结果没变,但是可以加深理解。

#include <iostream>using namespace std;int main(){int i = 2000;const int & refI = i+2;cout<<"refI = "<<refI<<endl<<"I = "<<i<<endl;return 0;}
结果是:



可以发现,refI的结果没变,这是因为refI不是i的const型引用,而是i+2返回的结果的常量引用。

2、const 型引用又是一种特殊情况,如上面的例子,refI是绝对不能改变的,所以const 型引用是可以用常量进行初始化(或者是表达式)的,而非const型引用只能用相应类型的非const变量进行初始化

#include <iostream>using namespace std;int main(){const int & refI = 200;cout<<"refI = "<<refI<<endl;return 0;}
上述代码的运行结果是:



原创粉丝点击