关于printf()与自增自减运算符结和问题
生活随笔
收集整理的這篇文章主要介紹了
关于printf()与自增自减运算符结和问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.問題描述:
#include<stdio.h> int main() {int i=3;printf("%d %d %d %d %d",i++,++i,++i,i++,--i); }2.問題的解決方案
2.1DEVC++運行結果
在DEVC++中printf()結和自增自減運算符時遵循:
1.從后往前運算
2.前置++或- -打印的是最終結果,后置++和- -打印的是參數當前值
- 1.我們看程序,最后一個參數是- -i,此時i變成了2,是前置運算打印最后i的值,先不管,往前推一個參數
- 2.倒數第二個參數是i++,是后置運算,打印i當前值2,由于后置運算時先運算再自增或自減,所以此時變成了3
- 3.再往前推一個參數++i,前置運算,打印最終結果,此時i變成4。
- 4.再往前推一個參數還是++i,前置運算,打印最終結果,此時i變成了5
- 6.再往前推一個參數,是i++,打印當前i的值為5,此時i的值變為6
- 7.i的最終值為6,把所有前置運算符的參數換成最終結果就得到最終答案
2.2CLion的運算結果
Clion編譯器的運算方案是從左往右,依次運算輸出,所以最終結果是和devc++結果不同
3.總結
我們可以看到不同編譯器對于printf()與自增自減運算符結和的結果不同,所以我們有的時候不用死磕這些,我們只需要知道:
1.printf函數在C語言中的運算順序是自右向左
2.前置自增與自減是先自增或自減再參與運算,后置自增或自減是先參與運算再進行自增或自減
總結
以上是生活随笔為你收集整理的关于printf()与自增自减运算符结和问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态规划各类问题分析——LeetCode
- 下一篇: 万字长文搞定C语言指针