經典i++和++i問題(附帶運算子優先順序問題)
阿新 • • 發佈:2018-12-20
轉自 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.運算子的優先順序
(2)*(ptr++)+=123,先執行*(ptr)+=123,相加結果為129,再執行自加1,此時*ptr指向arr[1] (3)printf此時的指標ptr,即列印arr[1]的值,故為7 (4)在執行下一句printf時,因為‘()’,‘++’的優先順序均高於‘,’所以指標ptr會先自增1,故指向arr[2]=8