c语言小白想学习,7-6第一个值输出为什么是8不是9?

c语言小白想学习,7-6第一个值输出为什么是8不是9?

问题描述:

 

答案是9,书上写错了,++i先自增,再赋值给n所以是9

如果是i++结果是8,先赋值,再自增

我来我来,两位老师可能是没注意到。这种情况是因为C语言传参过程是从右往左入栈的。这个与编译器设定有关,好处就是可以动态变化参数个数(这个题主有兴趣可以自行了解)。因此最先传入的参数是j,入栈的值i--,先用再加那就是入栈的8,而参数k也是同理,入栈的也是8,而m给的值是--i,先减后用所以是入栈7,n给的值++i,先加后用,所以加回去,入栈的8。因此最后输出的是8 7 8 8

因为后面还有一个--i啊

并不是打印问题,以后遇到这种情况可以直接看汇编语言代码就一目了然了

如果对楼主有帮助的话点个采纳吧

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632