C语言指针习题

C语言指针习题题8.31答案看不懂,希望大神讲一下,谢谢!... C语言指针习题题8.31 答案看不懂,希望大神讲一下,谢谢! 展开
 我来答
吴道子2011
2017-01-12 · TA获得超过1107个赞
知道小有建树答主
回答量:439
采纳率:0%
帮助的人:368万
展开全部
首先从图(a)中知道指针pd所指向地址为1430,而pd的地址是1440。1430地址存储的数字为0.0
指针p的地址是1400,指向的地址是1410。 地址1410存储数值为7,
指针p2地址为1380,指向地址1350,变量a地址为1350,值为14
指针p1地址为1300,指向地址为1100,而地址1100的值为9

这是这个图所得的信息,可以这么写为,不要纠结语法,这只是直观表示
这部分叫(上面)
pd=1430;
*pd=0.0;
*(1410)=7;
p=1410;
*p=7
p2=1350;
*p2=a=14;
&a=1350;
a=14;
p1=1100;
*p1=9;

然后看下面代码
1、*pd+=(double)*p1;
由上面*pd为0.0,*p1为9,
所以*pd=9.0;
pd仍为1430

2、p1=&a;
因为上面&a=1350;指针p1指向变量a
所以p1=1350;

3、*p1=*p;
由上面*p=7;
所以*p1=7;这个时候由于p1=&a,所以*p1=7,a的值也变成7

4、p2=p1;
第二步p1=&a;此时p1=1350,指针p2也指向变量a
所以p2=1350

5、*p2/=3;
因为第四步已经改变了p2的指向,*p2指向地址1350的值,也就是变量a的值7,
*p2/=3,也就是7/3,因为a是int,所以*p2=2;此时a也为2。

6、++p2
也就是p2指向了地址1354,这是因为int4个字节长。此地址值为20

7、++*p2;

++与*等优先级,按顺序先与*结合在于++结合,*p2=20;在++ ,所以为21

总结:
1430

9.0

7

1410

1354

21

2

9
百度网友2018359
2017-01-11 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1382万
展开全部
颈椎病都给我治好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笑亦老
2017-01-11 · TA获得超过271个赞
知道小有建树答主
回答量:503
采纳率:33%
帮助的人:211万
展开全部
哇看不懂
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2017-01-11
展开全部
歪不拉几的 看都不想看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式