- 最後登錄
- 2022-10-28
- 在線時間
- 0 小時
- 註冊時間
- 2010-2-3
- 閱讀權限
- 30
- 精華
- 0
- UID
- 7563378
- 帖子
- 722
- 積分
- 2721 點
- 潛水值
- 16557 米
| 如果瀏覽伊莉時速度太慢或無法連接,可以使用其他分流瀏覽伊莉,www01.eyny.com(02,03)。 本帖最後由 kaworucloud 於 2012-10-8 04:51 PM 編輯
並不是實機 run 過有跑出結果就叫做有答案
會叫做 undefined behavior 就是因為你用 a compiler 跟用 b compiler 跑出來的結果不一定相同
不過這題的確是屬於 well-defined behavior
- a+=--a-b==+b<<2&&0?1,b=2:b++/2;
複製代碼
此述句中含有三個 sequence point
第一個是 && 之前:
--a-b==+b<<2
執行至此,所有 side effects 均已發生完畢,a 的值已確定為 1
第二個是 ? 之前
此處並無新的 side effects
由於 first operand 的結果是 false,因此執行 (b++)/2
第三個是 ; 之前
至此等同於執行 a+= (b++)/2
其中對 a 與 b 都只進行了一次賦值行為,因此此例並非 undefined behavior... |
|