这和 编译器 相关的,
c++ 编译 时, 把这条语句当作一个整体, 对 --y 先计算,
然后 执行 printf, 执行完后再对2个 y-- 计算。
而turbo c编译时, 在传参前已经计算了 --y 和 y--, 所以结果不一样。
这种写法也就玩玩可以,正式项目这么写就是自己作死。
顺便说一句,这和堆栈没有任何关系,你们老师比较水
主要的问题在于不同编译器,参数压栈的顺序和参数值计算的顺序都不一样,并且压栈的顺序不一定和参数值计算顺序相同,因此不同编译器出来的结果会不一样。
你的这两个编译环境,都是从右往左算就对了,唯一差别是在于,VC6的y--是要等到printf执行完成之后再执行,而TurboC是先执行y--再执行printf。
结果:stack
请采纳。。。。
我的VS运行的也不一样