-3
答案是出來45.我不明白這個東西是如何工作的。後增量,預增量和運算符優先
main()
{
int a =10;
int i = a++ + ++a + a++ + ++a;
printf("%d , %d ", i,a);
}
答案是出來45.我不明白這個東西是如何工作的。後增量,預增量和運算符優先
main()
{
int a =10;
int i = a++ + ++a + a++ + ++a;
printf("%d , %d ", i,a);
}
其實輸出是一個undefined behavior
這很好。
從C99標準是6.5表達式,§2
之前和下一序列點之間的對象應具有由表達式的評估修飾的至多一次其 存儲的值。 此外,只讀取先前值以確定要存儲的值 。
操作數的評估順序未指定。如果嘗試使用 修改賦值運算符的結果或在下一個序列點之後訪問 ,則行爲是未定義的。
已經有很多答案了,請做點搜索 – P0W