1. 程式人生 > >經典i++和++i問題(附帶運算子優先順序問題)

經典i++和++i問題(附帶運算子優先順序問題)

轉自 https://blog.csdn.net/mustard1020/article/details/79617865

1.i++和++i的區別

    (1)i++簡單來說就是先用i的值來參加表示式的計算,然後再自加1                 i=4;                 a=i++;        //此時,先做a=i=4,再做i++,故a=4,i=5     (2)++i則是先自增1,再用自加後的值來做運算。                 i=4;                 a=++i;         //此時,先做++i=5,再做a=++1,故a=5,i=5 2.運算子的優先順序              
      *典型例題1 (比較下面兩個程式碼輸出結果的不同)     程式1:                程式2:                *典型例題2(輸出程式結果)                     該程式分別輸出:           7           8,8           (1)首先指標ptr指向陣列arr的arr[0]=6

 

 

          (2)*(ptr++)+=123,先執行*(ptr)+=123,相加結果為129,再執行自加1,此時*ptr指向arr[1]           (3)printf此時的指標ptr,即列印arr[1]的值,故為7           (4)在執行下一句printf時,因為‘()’,‘++’的優先順序均高於‘,’所以指標ptr會先自增1,故指向arr[2]=8