p2=*&p1; 是什么意思?

cart55free99 2011-03-23 12:06:01
p1指向某个整型变量,要使指针p2也指向同一变量

我只知道int *p2=p1;
但是答案是p2=*&p1; 把p1地址的值赋给p2吗?
...全文
1871 26 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
pathuang68 2011-03-23
  • 打赏
  • 举报
回复
同意1L的说法。
hhh_hao 2011-03-23
  • 打赏
  • 举报
回复
错了,p1也是指针的话,int *p2=p1;就可以了
bluesky12312388 2011-03-23
  • 打赏
  • 举报
回复
是的
p2=*&p1;
    
&p1,取p1的地址,*(&p1)就是取出p1的值,也就是你说的把p1变量赋给p2
hhh_hao 2011-03-23
  • 打赏
  • 举报
回复
int *p2 = &p1, 应该是这样吧
AnYidan 2011-03-23
  • 打赏
  • 举报
回复
p2=*&p1 和 p2=p1是等价
hu771364 2011-03-23
  • 打赏
  • 举报
回复
int a;
int *p0=&a;
int *p1;
*p1=*&a;
不就是int *p1=&a;嘛
NowDoIT 2011-03-23
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 awsqsh 的回复:]
p1的地址进行解引用!应该是这样的@
[/Quote]
++

wizard_tiger 2011-03-23
  • 打赏
  • 举报
回复
int *p2=p1;

int *p2;
p2=*&p1;

int *p2;
p2=p1;

这三个的结果都会使p2和p1指向同一个变量。
awsqsh 2011-03-23
  • 打赏
  • 举报
回复
p1的地址进行解引用!应该是这样的@
qcy_1990 2011-03-23
  • 打赏
  • 举报
回复
&p1,取p1的地址,*(&p1)就是取出p1的值
只要记住这个就行了
stonewomen 2011-03-23
  • 打赏
  • 举报
回复
不是的,那是把p1的值给p2的
如影随从 2011-03-23
  • 打赏
  • 举报
回复
*和&两个符号当连在一起使用的时候,相当于抵消的效果,所以说这个就相当于两个变量之间的赋值。
LBJMD 2011-03-23
  • 打赏
  • 举报
回复
既然p1指向某个整型变量,那么p1就是个就是指针了
则p2=*&p1 和 p2=p1是等价的
如果p1是整型变量,那么int* p2;p2=&p1;就把p1地址的值付给p2了
碎碎念 2011-03-23
  • 打赏
  • 举报
回复
这些都是等价的...

int *p2=p1;
<=====>
int *p2;
p2=*&p1;
<=====>
int *p2;
p2=p1;

秃头披风侠 2011-03-23
  • 打赏
  • 举报
回复
p2 = p1
如此美丽的你 2011-03-23
  • 打赏
  • 举报
回复
p1应该也是指针变量,此式等价于p2=p1,也等价于p2=&*p1
xali 2011-03-23
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

int main()
{
int x=5;
int *p1=&x;
int *p2=p1;
int *p3=*&p1;
int *p4=&*p1;
cout<<x<<*p1<<*p2<<*p3<<*p4<<endl;
return 0;
}
zhh_kv 2011-03-23
  • 打赏
  • 举报
回复
问题没有阐述清楚:p1的类型是指针还是整型?
maoxing63570 2011-03-23
  • 打赏
  • 举报
回复
这题想着还真的有点幽默的感觉,int *q=*&p;首先取p(p为 int *类型)的地址,然后对该地址解引用,也就是p中保存的一个指向整形变量的地址,然后赋值给q
yihanJ 2011-03-23
  • 打赏
  • 举报
回复
同意5楼得说法,只要记住&p是取得p的地址,*p是取得p的内容,这样分析就会很容易了
加载更多回复(6)

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧