寻求例程!关于指针的问题!

chengxcheng 2004-01-27 02:53:55
关于指针的指针我还是弄不清楚,书上说---
int a=30;
int* p=&a;
int** pp=&p;
意思好象是** pp既可以表示a的值30,也可以表示* p的地址。这样理解对吗?
如果是这样,那请各位高手给出两个例程好不好!!谢谢了!(典型一点的)
...全文
27 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
lpclpc 2004-01-29
  • 打赏
  • 举报
回复
可以这样理解:
p=a的地址
*p=a中存放的数据
pp=p的地址
*pp=p中存放的数据=p=a的地址
**pp=*p=a中存放的数据
chuxiyue 2004-01-29
  • 打赏
  • 举报
回复
指向指针的指针,存放指针地址
pacman2000 2004-01-29
  • 打赏
  • 举报
回复
pp里面存放的是p的地址,通过pp,可以访问到a的值,这样说比较清楚。
阿浪 2004-01-29
  • 打赏
  • 举报
回复
上面的有点让我不明白了,大家有的说pp是P的地址,有的说PP就是a的值.难道都对么?难道两个是相等的么?PP是干什么的呢?
cyorke 2004-01-28
  • 打赏
  • 举报
回复
pp=a *pp=p **pp=a
阿浪 2004-01-28
  • 打赏
  • 举报
回复
明白了,小妹这里谢过了.
lifanxi 2004-01-28
  • 打赏
  • 举报
回复
**p不能说成是指针数组。
int a是定义int变量a,int *p就是定义指向int的指针变量p,int **pp就是定义指向int *的指针变量pp,也就是 指向 指向int的指针变量 的指针。
所以*pp=p。即**pp=*(*pp)=*p=a。
boy8765 2004-01-28
  • 打赏
  • 举报
回复
标记
阿浪 2004-01-28
  • 打赏
  • 举报
回复
to lifanxi(Byron)
能不能麻烦你写一下int **pp=&p;中的每个*都是什么?
"这时*pp表示p,所以**pp表示a。"这个时候又是什么呢?
谢谢了,我对**很迷惘.
Aofa_lee 2004-01-28
  • 打赏
  • 举报
回复
其实你把**p说成指针数组会好一点!
lifanxi 2004-01-28
  • 打赏
  • 举报
回复
您好像没有理解*在声明变量和作一元运算符时的区别。
int *p;
中的*表明了p是一个指向int的指针。所以可以p = &a;
如果再*p = 3;这里的*表示取值,*p就是p所指的变量,也就是a。
以上两处*的作用是不同的,不能混为一谈。
所以
int **pp = &p;
表示pp是一个指针,它指向另一个指针,这个指针是指向一个int的变量的。
这时*pp表示p,所以**pp表示a。
DeathRocK 2004-01-28
  • 打赏
  • 举报
回复
恩。。是啊。指针套指针。很容易弄混的!
xxxl 2004-01-28
  • 打赏
  • 举报
回复
p=&a
*p=a=30

pp=&p
*pp=p
**pp=*p=a=30
luoxiao_std01 2004-01-27
  • 打赏
  • 举报
回复
** pp<=>*(*pp)<=>*p<=>a,正确
antijpn 2004-01-27
  • 打赏
  • 举报
回复
pp当然可以表示a的值,**pp就是使用a的值

pp当然也可以表示a的地址,也就是p的值,*pp就是了
chengxcheng 2004-01-27
  • 打赏
  • 举报
回复
to:pacman2000(pacman)
那是不是说** pp<=>*(*pp)<=>*p<=>a呢?
pacman2000 2004-01-27
  • 打赏
  • 举报
回复
指针只存放地址,而不管地址指向的内容是什么。所以,pp存放的是p的地址,只是p又恰好是个指针。
BluntBlade 2004-01-27
  • 打赏
  • 举报
回复
*p <=> a
*pp <=> p
**pp <=> *p <=> a

69,371

社区成员

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

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