可不可以写成int*& y=x ,怎么都是写的int &y=x,因为我看视频里有些是写的前者
1 回答
asd8532
TA贡献143条经验 获得超187个赞
int*&p 是 指针的引用。 他是一个 指针 的 别名 ,一般可以当成 指针 使用。有时候,可以直接他的值,成为其他指针的引用
int&*p 是 引用的指针,这个是非法的,指针不能指向引用。引用不具有确定的存储,无法间接访问得到表示引用的存储的左值,所以干脆人为规定禁止构造指向引用的指针类型。
#include <iostream> using namespace std; void swap5(int *&a, int *&b){ int tem = *a; *a = *b; *b = tem; } int main(){ int a = 1; int b = 2; int *aPtr = &a; int *bPtr = &b; int *&arPtr = aPtr; int *&brPtr = bPtr; swap5(arPtr, brPtr); cout<<"a = "<<a<<endl; cout<<"b = "<<b<<endl; system("pause"); return 0; }
int*& value这样一个声明,我们从最接近value的符号看起,是个&,说明value是一个引用,它是一个什么引用呢?再看*,它是一个指针的引用,即指针的别名,我们用*value就可以访问到实参的值了。所以,其交换函数的内部逻辑跟int *是一样的。
- 1 回答
- 0 关注
- 1143 浏览
添加回答
举报
0/150
提交
取消