若有定义和语句: int **pp,*p,a=10,b=20; pp=&p;p=&a;p=&b;printf("%d,%d\n",*p,**pp);

则输出结果是:()A.10,20B.10,10C.20,10D.20,20答案为D,可是具体分析是怎么的呢?... 则输出结果是:()
A.10,20
B.10,10
C.20,10
D.20,20
答案为D,可是具体分析是怎么的呢?
展开
 我来答
huai_f
2011-12-09 · TA获得超过500个赞
知道小有建树答主
回答量:566
采纳率:0%
帮助的人:523万
展开全部
应为指针p最终指向的是b的地址所以 *p输出的是b的值

**pp是指针的指针 pp=&p 干的事情是将p的地址指向pp,此时*pp 相当于 p 所以 **pp 可以看成是
*(*pp) 即* p所以输出的是b的值
追问
为什么讲指针p最终指向的是b的地址,而不是a呢?怎么看的?
追答
程序是从上往下执行的
先执行;p=&a;这时p指向a的地址
然后执行p=&b;这时指向b的地址
所以最后*p输出的是b的值
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式