*p=&i可以这样理解吗?

peng_peng 2002-01-03 05:53:58
首先是把变量i赋给了*p
同时把把变量i的地址赋给了p ,可以说有两种赋值。
其实只有一种赋值,从含义上说有两种
...全文
1614 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
stl_liu 2002-01-07
  • 打赏
  • 举报
回复
sorry,的确是我错了,应该是:

int *pp; //pp是一个指针
int **p = &pp; // p是一个指针,指向另一个指针pp,那个指针pp则指向一个int
int i = 10; // i就是将要被指向的int。 :)
*p = &i; // 现在嘛 ... **p == 10;

谢谢MarkDong的指教。
davidzgz 2002-01-07
  • 打赏
  • 举报
回复
如果*p为指针,即p为二级指针,
*p=&i的意思为*p保存的值是i的地址,
即**p=i,
或p=&(&i)

定义时 int &i ;表示引用,参见《esential C++》,
在运算时,&为取址符号,清详细看看书籍《esential C++》这部分的讲解
MarkDong 2002-01-07
  • 打赏
  • 举报
回复
小刘飞刀好像说得不对吧, 他的程序能正确执行吗?我怀疑

如果问题中的*p=&i;不是出现在定义p的时候,也就是说不是指int *p=&i;

那么应该是将i的地址存放到了p指向的地址中,p和i并没有直接的关系。
cxjddd 2002-01-06
  • 打赏
  • 举报
回复
c++对象模型这本书价格在50元左右,那次新华书店降价,没买到,可惜。
*p=&i是一个有问题的表达式。应该是p=&i或*p=i。可是二者还是有不同。
除非*p是一个指针。
peng_peng 2002-01-06
  • 打赏
  • 举报
回复

注意

谢谢捧场!

c++对象模型这本书我没有,希望大家推荐几本书,最好有电子版的共下载了,随后散分!
Lemon-sai 2002-01-04
  • 打赏
  • 举报
回复
int *p=&i
*在这里只是说明p是一指针,
和*运算(地址p对应的值)是不一样的
这里说明p是指向i的指针
Last_Dodo 2002-01-04
  • 打赏
  • 举报
回复
*p=&i是指针变量的赋值。显然,p是二重指针(double pointer)。*p是指针,给它赋值的方法是用new来分配新内存或用&来取得地址。这里i并没赋给*p。但*p=&i后,可同过p来访问i.
sharonyym 2002-01-04
  • 打赏
  • 举报
回复
同意andy_lau()的意见 :)
stl_liu 2002-01-04
  • 打赏
  • 举报
回复
同意andy_lau()的意见。
好比是:

int **p; // p是一个指针,指向另一个指针,那个指针则指向一个int
int i = 10; // i就是将要被指向的int。 :)
*p = &i; // 现在嘛 ... p指向(*p),(*p) == 10;
chengyumao 2002-01-03
  • 打赏
  • 举报
回复
gzgz
gernal_dn 2002-01-03
  • 打赏
  • 举报
回复
int *p=&i;//p指针地址 =i的地址
int **pp;
*p=&i;//p指针指向i的地址
panjet 2002-01-03
  • 打赏
  • 举报
回复
有这么复杂吗?

p指针指向i的地址!
_xiaolifeidao 2002-01-03
  • 打赏
  • 举报
回复
我建议去看一下c++对象模型,那里面对于指针的解释绝妙:)
andy_lau 2002-01-03
  • 打赏
  • 举报
回复
*p=&i的含义是*p指针指向i的地址,p是指向 指向i地址的指针 的指针是个二重指针
我认为他们之间并不存在相互赋值的关系,而是谁指向谁的关系。
veinstone 2002-01-03
  • 打赏
  • 举报
回复
要注意运算符的优先级和解和顺序!
编译器并没有吧变量i赋给*p,但是建立了关系!
NowCan 2002-01-03
  • 打赏
  • 举报
回复
缺少定义,含义不清。

15,445

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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