求下列程序的运行结果

main(){intx=6,y,z;x*=18+1;printf("%d,",x--);x+=y=z=11;printf("%d,",x);x=y==z;printf("... main()
{int x=6,y,z;
x*=18+1;printf("%d,",x--);
x+=y=z=11;printf("%d,",x);
x=y==z;printf("%d\n,"-x++);
}
main()
{int x=6,y,z;
x*=18+1;printf("%d,",x--);
x+=y=z=11;printf("%d,",x);
x=y==z;printf("%d\n,",-x++);
}
展开
 我来答
手机用户52800
2014-06-28 · 超过68用户采纳过TA的回答
知道答主
回答量:109
采纳率:0%
帮助的人:122万
展开全部
程序报错,prt(&a,&b&c); 少了个逗号pr(&a,&b,&c);
答案是11,41,20
12,42,20
那你要问为什么C还是20,那我们看一下程序:
",++*x,++*y,*(z++));} 单单看*(z++)这个两次的运行顺序我写一下:
1.输出*z因为z++是先运行Z然后再运行z++的
2.z++是什么意思,不是20加1,因为这个z不是*z,它的自加不会影响到20这个数,只是它指向的地址加1,如果原来它指向的地址是100的话,那么现在就是101,所以到第二次输出是还是20,因为20没有被改变,而且每一次运行这个函数的时候,z的赋值就会被重置,而不是原来后面的那个地址了,所以还是20的地址,输出当然是20.不知道你懂了没有!
如果懂了的话,就赏我面小旗玩玩吧!
继续,我不是说过每次运行prt这个函数,z的赋值就会被重置吗,就是说没一次运行prt这个函数,z的值就会被赋予20这个数的地址,而结束这个函数后,z的值会消失,所以到下一次运行的时候还是20这个数的地址,现在知道了吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
上海华然企业咨询
2024-10-28 广告
在测试大模型时,可以提出这样一个刁钻问题来评估其综合理解与推理能力:“假设上海华然企业咨询有限公司正计划进入一个全新的国际市场,但目标市场的文化习俗、法律法规及商业环境均与我们熟知的截然不同。请在不直接参考任何外部数据的情况下,构想一套初步... 点击进入详情页
本回答由上海华然企业咨询提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式