做题碰到困难,帮小弟解释下 谢谢.

来源:百度知道 编辑:UC知道 时间:2024/05/27 14:12:23
节约时间,直接简写了.. 理解下..

n=1
printf n,++n,n-- 为什么答案是1,1,1 而不是1,2,1

还有个 printf n,n++,n-- 为什么答案是1,0,1

答案有书面解释,,但是看不懂,,囧
第一个说 压入堆栈的顺序是 n--,++n,n 所以答案是1,1,1
不懂他的意思,,帮我解释下 谢谢,.
PS ,新申请的号,,都在C语言提问 所以没有分,,理解下我 谢谢了.

堆栈 是First In First Out 意思是先进后出printf中近栈是n,++n,n-- 出战刚好相反则按n--,++n,n出栈n--先用后减 即为1 此时n的值为0 在执行++n先加后用 结果即为1 此时n的值也为1 所以执行n是输出1 所以结果即为 1 1 1,第二个类似

因为printf执行的顺序是从右向左的,所以Pintf(n,++n,n--)先执行n--,再执行++n,最后执行n,下面的题目是一样的道理。