結果:
1, 0
4, 4
5, 6
這就解釋了,為什麼第一行是1,0而不是0,1
後置:直接讀取臨時變數的值
第一行printf **相當於
int i =0;
a = i++
;//printf處理後置自加,會建立臨時變數存放該值
b = i++
;printf
("%d, %d\n"
, a, b)
;
第二行printf **相當於
int i =0;
i++;
// 第一行printf
i++;
// 第一行printf
++i;
++i;
printf
("%d, %d\n"
, i, i)
;//printf處理前置自加,會去該變數位址上讀取
第三行printf **相當於
int i =0;
i++;
// 第一行printf
i++;
// 第一行printf
++i;
// 第二行printf
++i;
// 第二行printf
++i;
// 第三行printf第二個引數式子
int a = i++;// 第三行printf第乙個引數式子,所以第乙個引數結果是5
printf
("%d, %d\n"
, a, i)
;
C語言備忘錄 運算子優先順序
丟臉啊,今天寫一道演算法題,第一次沒寫對。改了半天愣是沒看出來錯哪,後面說出了一下過程,突然發現是運算子優先順序惹得禍 if num 2 的運算優先順序高於 啊啊啊,喪心病狂我找了十來分鐘,把老臉都給丟盡了。為了避免這種低階錯誤,所以寫下這篇部落格鞏固一下運算子優先順序。不叨叨,直接上表。優先順序 ...
自增運算子 與 自減運算子
字首形式的 操作符出現在運算元的前面。例如 a 說明 運算元的值被相加,而表示式的值就是運算元增加後的值。舉例 int a,b 1 a b b增加至2,a得到的值為2 字尾形式的 操作符出現在運算元的後面。例如 a 說明 運算元的值仍被相加,而表示式的值是運算元增加前的值。舉例 int a,b 1 ...
自增自減運算子
自增自減運算子 i 先使用i,然後i i 1 i 先使用i,然後i i 1 i 先i i 1然後使用i i 先i i 1 然後使用i 以下使用vc下除錯的結果,不同的編譯器可能有不同的結果。i 3 例1printf d i 結果輸出4 例2printf d i 結果輸出3 例3printf resu...