关于引用和const
int *pi = &i;
--------------------
int *&ri = pi; //ok
-----------------------
int *&ri2 = &i;
//编译器的提示:error C2440: “初始化” : 无法从“int *__w64 ”转换为
//“int *& ”,不是对“const”的引用不能绑定到非 lvalue
---------------------------
int *const &ri3 = &i; //ok,加上const就对了
为什么呢?
相关推荐
深入学习const和引用
本文详细介绍了const 和 引用的基础知识,对C++编程非常有益。
const常量和引用.cpp
翁恺教授视频《C++面向对象程序设计》源码
c++ const引用与非const引用介绍
const引用是指向const对象的引用。 代码如下: const int i = 10; const int &ref = i; 可以读取ref,但不能修改。这样做是有意义的,因为i本身就不可修改,当然也不能通过ref来修改了。所以也就有将const变量赋值给非const引用是非法的。 代码如下: int &ref1 = i; // error: nonconst reference to a const object 非const引用是指向非const类型变量的引用。 const引用可以初始化为不同类型的对象或者右值(如字面值常量),但非const引用不可以。 代码如下: //
浅析C++的引用与const指针与各种传递方式
浅析C++的引用与const指针与各种传递方式 首先我们知道 const int *p 与 int const *p 是一样的,即 *p 是常量;而 int * const p 跟上面是不一样的,即 p 是常量;我们知道引用只是一个别名,与变量共享存储空间,并且必须在定义的时候初始化,而且不能再成为别的变量的别名,这让我们想到什么呢,貌似跟 int * const p 的性质很像。 其实引用的底层就是用const指针来实现的。下面举个小例子: #include <iostream> using namespace std; void swap(int &x, int &y) {
C++中const与指针、引用的分析
C++中函数的参数相比C语言中的函数参数要复杂的多,其中主要的原因是C++中引入了引用以及const限定符。这两个对象的引入,使得C++中的函数参数变得异常的复杂多变,每一种类型都具有比较适合的使用范围。 本文详细的分析const与指针、引用在一起存在情况下的情况分析。


