c++后面的&是什么意思?

来源:百度知道 编辑:UC知道 时间:2024/06/17 17:42:06
istream& operator>>(istream&,string);
我知道是引用,但是我第一次看到在变量后面的
&a=b不是前面吗?

这是 重载吧
必须引用

那个是引用
&a=b 这个还是引用

你都学到重载操作符了.你还不知道 &在这里是引用 .

真让人心寒啊.

引用 有不有都行

是引用

引用既别名。也就是说引用是对一个对象名字的替代物。所有对引用的操作都直接影响到被引用的原始对象。有些书上说引用就是const指针,的确引用的行为类似const指针,但绝不能把它理解成const指针。因为指针是一个量,在内存中占据一块地方的,而引用是对象的别名,当然引用也可能占用一块存储空间,这取决于编译器的实现。总之,应当把引用理解成对象的别名,记住:“引用既别名”。
int iData;
int &ref = iData; //引用
int * const pointer = &iData; //const指针

cout << &iData << endl; //输出的是iData的地址
cout << &ref << endl; //输出的是iData的地址
cout << &pointer << endl; //输出的是pointer的地址
cout << &(*pointer) << endl; //输出的是iData的地址

二、引用与指针
引用很容易让人联想到指针,的确两者有相似地方,但更应当看到它们的不同之处:
1、引用必须在声明时既初始化,而指针不必。
2、引用一经初始化,就不能让它去引用另一个对象;而指针可以指向另一个对象。
3、引用不能为空;而指针可以。
4、引用不能new;而指针可以。
5、指针可以有指向指针的指针这种多级结构,而引用不能。
6、指针作加减运算是改变所指的对象,而引用的运算是改变所引用对象的值。