printf 多參數中有運算時 是從右到左執行的;spa
i++ 和 ++i 優先級是大於 賦值 =運算的; i++ 和++i 是平級的;blog
i++ 先用在算,++i 先算在用;im
從右往左的過程:運算的先算,碰到只是賦值的 跳過執行下一個運算。總結
說明第一個printf:從右往左img
第四個參數 i++ 先用(輸出i爲2),後加 i變成3=>截圖
碰到第三參數 賦值 i 無論,跳到第二個運算參數 ++i,先算後用,i變成4,這個時候尚未用(即沒有輸出)=>co
跳到第一個運算參數i++,先用(輸出i爲4),後加 i變成5 =>ps
而後到 第 2 3 個參數直接用i,這個時候 i都是5,都輸出5 ,SO:輸出的爲 4,5,5,2。參數
說明第三個 printf :printf
第四個賦值 i 不執行,跳到第三個運算參數 i++,輸出2 ,i變成了3=>
跳到了第二個運算參數i++,輸出3,i變成了4 =>
跳到了第一個運算參數++i, 先運算i變成5 ,輸出5 ,=> 剩餘 第四個參數輸出 i的值,輸出5;
so: 5 3 2 5