c++中int*&p和int&*p的区别

2024-12-03 07:21:08
推荐回答(4个)
回答1:

c++中int *&p和int &*p的区别为:性质不同、 使用不同、访问不同。

一、性质不同

1、int *&p:int *&p是指针的int类型引用。

2、int &*p:int &*p是引用的int类型指针。

二、 使用不同

1、int *&p:int *&p是指针 的 别名 ,可以当成指针使用。

2、int &*p:int &*p指针不能指向引用,不具有确定的存储,无法直接使用。

三、访问不同

1、int *&p:int *&p可以直接访问得到指针指向的数值。

2、int &*p:int &*p无法访问得到表示引用的存储的数值。

回答2:

int &*p; 是不正确的,*与p靠得最近,所以p是一个指针,但是这个指针的类型是int &,所以这个是错吴的, 因为不能创建引用的指针。

int *& p, 是正确的, &与p靠得最近,所以p是一个引用,这个引用的类型是int*,也就是一个指针变量的引用,但是必须初始化,否则也是错误的。.

回答3:

如果按照正常的解读(从右到左),
int*&p 是 指针的引用。 他是一个 指针 的 别名 ,一般可以当成 指针 使用。有时候,可以直接他的值,成为其他指针的引用
int&*p 是 引用的指针,这个是非法的,指针不能指向引用。引用不具有确定的存储,无法间接访问得到表示引用的存储的左值,所以干脆人为规定禁止构造指向引用的指针类型。

回答4:

前者是地址的指针
后者是指针的地址