a=3,printf("%d,%d,%d",a++,a++,--a);为什么输出为2,2,2

[复制链接]
查看11 | 回复1 | 2009-8-25 09:12:54 | 显示全部楼层 |阅读模式
一般来说,函数的参数是按从右到左的顺序入栈的,所以先是--a,再是a++,再是a++.另外注意++后缀时,是先将++前的值入栈,等其所在的语句运行结束后再++,而不是将a的值入栈后立刻++.所以先是--a,a变成2,入栈.再是a++,将2入栈再是a++,将2入栈最后是两次++,a变成4...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行