程序段:i=8,j=10;printf("%d,%d,%d,%d\n",i,j,++i,j++);其结果9,10,9,10.
结果为什么是这样?
5 回答
monarchloser
TA贡献1条经验 获得超5个赞
一直以来,++ --语法浪费了太多人的时间。说句实在话,++ -- 在C语言中其实是一个很细节的语法,除了表达简练外,真的没有什么其它的好处了。
由于中国的C语言教程长期以来被谭浩强主宰,而谭又错误的把++ --作为一个C语言重点来教,并增加了一些难点,把本来很简单的语法,搞得复杂无比!
简单的来说,++i 和 i++,在单独使用时,就是 i=i+1。
而 a = ++i,相当于 i=i+1; a = i;
而 a = i++,相当于 a = i; i=i+1;
如果实在搞不明白++ --怎么回事,那也不是什么天塌下来的事。
因为a=++i完全可以写成 i++; a=i。
a=i++完全可以写成 a=i; i++。
而且,这也是一种好的程序风格:++ -- 语句如非特殊需要,请单独一行使用。
Xyino_Snake
TA贡献31条经验 获得超22个赞
++--的问题可以深入思考。但我已经知道,你现在问的这个问题,答案本身没有答案揭示的结论更重要。我有C语言三剑客。里面有部分针对这一问题做了全面的阐述。大概的意思就是可以思考这个问题,但不能依靠这种特性。因为这种特性经常靠不住。因此,不妨分离出++--,对性能的影响几乎为0。因为编译器有权优化改写你的代码。
- 5 回答
- 1 关注
- 2224 浏览
添加回答
举报
0/150
提交
取消