猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
可不可以写成int*& y=x ,怎么都是写的int &y=x,因为我看视频里有些是写的前者
可不可以写成int*& y=x ,怎么都是写的int &y=x,因为我看视频里有些是写的前者
年轻人3
浏览 1144
回答 1
1回答
asd8532
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
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
C++
typedef入门问题
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续