读书人

C++引用有关问题

发布时间: 2012-05-24 11:55:41 作者: rapoo

C++引用问题。
c++primer中有这么一句话:当引用初始化后,只要该引用存在,他就保持绑定到初始化时指向对象,不可将引用绑定到另一个对象上

但是:
#include<iostream>
using namespace std;
int main()
{
int i=3;
int b=4;
int &a=i;
a=b;
cout<<a;
return 0;
}

这段代码输出的结果确实4,如果按他的说法应该是三。。。。。因为引用a初始化时指向的对象是i,那么应该输出3.。。


是我错了,还是书错了。。。。求大神。。

[解决办法]
引用绑定到了i.
这样写了之后, a=b.同时 i的值也变为4了.
[解决办法]
&a=i,就相当于给i取了个别名,可以把a和i看作一个,在a=b的时候,a的值改变了,i的值当然也改变了
[解决办法]
int i=3;
int b=4;
int &a=i;//这里a是i的别名
a=b;//把a的值置为4,也就是把i的值置为4
cout<<a;//所以这里输出为4

C++中通常不这样使用引用,引用通常使用在传递引用参数,有时基于效率问题,
有时是不使用return,而直接传引用。

[解决办法]

探讨

引用绑定到了i.
这样写了之后, a=b.同时 i的值也变为4了.

读书人网 >C++

热点推荐