int a[5] = {1,2,3,4,5};
int *b = a;
printf("%d, %d \n", *((b+=1)-1), *((b+=1)-1));
輸出結果為什么是(2, 2)呢?
uj5u.com熱心網友回復:
未定義行為 結果沒意義 不用討論uj5u.com熱心網友回復:
這和運算式的執行順序有關,而運算式的執行順序又和編譯器有關,所以不同編譯器可能結果不一樣,所以寫代碼盡量避免這種有歧義的代碼轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/147245.html
標籤:C語言
