当前位置: 代码迷 >> C语言 >> 简单的小问题,涉及到使用printf输出表列中的求值顺序问题
  详细解决方案

简单的小问题,涉及到使用printf输出表列中的求值顺序问题

热度:204   发布时间:2006-11-29 16:54:46.0

7楼的,你的是错的吧?我按照你的那所写的在win-tc上运行了一下,答案跟你的完全不同;真是的,我还反复揣摩了好长时间! 我的分析是这样的:
大家不妨试试这样理解, 首先只输出++i; (结果为9)---->然后再输出++i和--i;(结果为8,7)--->
然后再输出++i,--i,i--;(结果为7,6,8)----->然后再输出++i,--i,i--,i++;(结果为8,7,9,8)--->
然后全部输出;(结果为7,6,8,7,-8);
分析: 首先肯定7楼所说的"在printf里执行的顺序是从右到左,"而运算的顺序是从右到左;

我们来运算{ 首先 -i--是-8,因为i++是先输出后,再自-的;

接着 到了i++ 是7,因为-i--输出后自减了1,而根据规则i++格式是先输后算
接着 到了i-- 是8,根据规则可以知道,输出的是上一步运算所得到的值
接着 到了--i,是6,因为--i是先计算,后输出的;
最后 到了++i,s是7,根据规则可以知道,是先自加的.
}
我是个新手 (我是把运行结果一步一步写在纸上分析的!)


----------------解决方案--------------------------------------------------------
  相关解决方案