永发信息网

C语言求输出结果

答案:4  悬赏:30  手机版
解决时间 2021-12-31 00:58
假定x的地址是0x5f00,且假定int占2个字节。
int x=5, *p = &x;
printf(“%p %d %d %d %d”, p, *p+2,**&p, 3**p, p+4);
注:格式化输出中的p为指针值,以十六进制方式输出。所有编译系统都支持这种格式。要注意如果将%p改成%d,在系统中可能会出现错误。
最佳答案
楼主你好。
p为0x5f00,按%p打印p的话应该是00005F00(32位系统)
*p+2为x+2即7。(注意*的优先级比+高,先取值再+2)
**&p也就是x为5(*&其实就抵消了)
3**p就是3*x为15
p+4是一个地址,按理说应该按照%p来打印,%d打印的话应该是0x5f00换算成十进制即24320再+4*sizeof(int),也就是24320+4*2=24328。(注意这里p+4那个4是4倍的sizeof(int))
所以最终结果应该是
00005F00 7 5 15 24328
我相信我的是正确结果。

试验了下:
#include
void main(){
int x=5, *p = &x;
printf("%p %d %d %d %d\n", p, *p+2,**&p, 3**p, p+4);
}
输出:
0012FF44 7 5 15 1245012

这是在x的地址为0x12ff44同时int为四个字节的情况下计算出来的结果,完全符合。
全部回答
楼主注意啦!
 首先你的scanf中不需要\n,这个东西,这是错误的写法。只要写:
 scanf("%d",n);
 而你下面的是一个while循环,所以当然会循环的输出的,知道你的n--为0,也就是while()循环中的条件为假时,就停止循环。
 所以结果不但是八,而是算出来的五个值。和、呵呵
0x5f00,7,7,21, 0x5f14
0017FAC0 7 5 15 1571536 你自己把x的地址换换就可以了
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
木兰派出所办公地址在什么地方?我要处理点事
爱奇艺年费会员有哪些
老虎钳是常用的电工工具,如图所示.对于老虎
浑水公司如何确定攻击对象?
八里堂派出所地址在哪?我要去那里办事
单选题下列有关文学文化常识的表述有错误的一
求系统,你好啊微盘下载
华为p8青春版怎么在爱读掌阅中调出目录?
Light-to-moderate smokers were to die of
什么是西铁城腕表三问报时功能?
虞城县大杨集派出所地址在哪?我要去那里办事
The boy became fatter and fatter each day
站集派出所在什么地方啊,我要处理点事
榴莲核能吃 榴莲核的功效与作用有哪些
请问,为什么封杀我的博客?,网上的视频很多,
推荐资讯
从杭州到上海怎么坐车?
新岭社区居委会在什么地方啊,我要处理点事
安装工程资料怎么做
已知光从某种介质射向空气时,入射角为41°,
认真阅读下面两句话,仿例②的格式和修辞特点
除了天涯以外,武侠小说连载发到哪些关注度高
电信光钎头断了能自己接吗
北京的四合院阅读答案
戴瑞戒指价格一般是多少?
开车从包头到江苏省过路费多少钱?
小猪短租邀请码有什么用,谁有? 30分
—May I speak to your manager Mr.Williams
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?