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

如题所述

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无法访问得到表示引用的存储的数值。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-02-27
int &*p; 是不正确的,*与p靠得最近,所以p是一个指针,但是这个指针的类型是int &,所以这个是错吴的, 因为不能创建引用的指针。

int *& p, 是正确的, &与p靠得最近,所以p是一个引用,这个引用的类型是int*,也就是一个指针变量的引用,但是必须初始化,否则也是错误的。.
第2个回答  推荐于2016-06-27
如果按照正常的解读(从右到左),
int*&p 是 指针的引用。 他是一个 指针 的 别名 ,一般可以当成 指针 使用。有时候,可以直接他的值,成为其他指针的引用
int&*p 是 引用的指针,这个是非法的,指针不能指向引用。引用不具有确定的存储,无法间接访问得到表示引用的存储的左值,所以干脆人为规定禁止构造指向引用的指针类型。本回答被提问者和网友采纳
第3个回答  2013-05-23
前者是地址的指针
后者是指针的地址

c++中int*&p和int&*p的区别
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指针不能指向引用...

C++中int *p和 int 的区别
int p;定义了一个未初始化的int类型指针,他指向int类型数据的内存块起始位置;int 是有符号整形变量,32位系统下是4个字节大小;

C++中,int&&表示什么意思?和int&有什么不同?
在C++中,函数void func(int &p,int q)中的第一个形式参数p是“int型引用”类型。引用是C++的特殊变量类型,它是已有变量的别名。主调函数调用func把实参传给p时,实际上是给实参起了个别名p,所以在函数中对p的操作就是对主调函数中的对应实参的操作,将会使实参发生永久性改变。而func中的第...

关于c++指针的问题 int *p; *p,&p都什么意思,怎么用
在声明中用时就是声明了一个指针,当在表达式中时就是取值运算符,指针的值就是他所指向的地址,&是取值运算符,&P就是取出变量p本身的地址,如果变量p是指针就是取出指针本身的地址,大一新开课的是吗那本坑爹教材,建议看《C++primer plus》权威,不能再好的书了,膜拜。望采纳 ...

C++中int和int&怎么区分?到底什么时候该用int,什么时候改用int&呢?
char * const p2 = p1; 是可以的,因为p2的限定符不少于p1,当然 const char *p3=p1也是可以的。但是 char*const*p1; const char*p2=*p1; 就会有问题,这个问题有些远了,而且不同实现或许不同,具体查阅编译器手册,有本书叫《C专家编程》可以看看。另外,虚机团上产品团购,超级便宜 ...

int* p, int* p,* p有什么区别
一、意思不同 int *p和int* p后者比前者更好理解为指针。int *p;可能会被理解为一个变量,名为*p,int* p;很直观的被理解为一个指针,名为p。二、强调类型不同 p是一个int’这里*和p绑在了一起——这就是C的风格,这种风格强调的是语法。而一个典型的C++程序员会写“int*p”,并告诉你...

C++中,int *& 与 int &* 的区别、意义及使用
int &*a 可以解释为,int类型引用 的指针(C++不允许声明 指向引用的指针)。const 是限定符 const int a; \/\/const 限定 int,即 a 是一个变量,类型为int的常量。(所以,int常量不可修改,所以a也不可修改)int const a; \/\/ const 限定 a,即 a 是一个常量,类型为int。const int *a;...

在C++中int* p;和int* p;有何区别吗?
一个典型的C程序员会写“int p”,而且振振有词地告诉你“这表示‘*p是一个int’”——听上去挺有道理的。这里,*和p绑在了一起——这就是C的风格。这种风格强调的是语法。而一个典型的C++程序员会写“int p”,并告诉你“p是一个指向int的指针,p的类型是int*”。这种风格强调的是类型。

请问&*p等于*&p?这两个怎么理解
&和*在c\/c++里用法较多,用在不同的地方,意思不同。用于语句里的指针变量时,表示指针指向的值。例如:printf("%d", *p);&用于语句里的普通变量时,表示求普通变量的地址。例如:int a; p=&a;“&*p等于*&p“ -- 是用于指针变量。例如:声明:int a=1; int *p=&a;语句:printf("%x ...

c++的int **p;我一直搞不懂,它是&p的意思吗?如果是,干嘛不写&p,要发 ...
它是指向地址的地址,意思p指向的地址A, A又指向地址B .不是&p的意思。你可以看看C 里面二级指针的相关知识

相似回答