可不可以写成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 关注
- 1249 浏览
添加回答
举报
0/150
提交
取消
