看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《khoguan (Khoguan Phuann)》之銘言: : ※ 引述《cppguide (洗屁屁)》之銘言: : : i=squared(++x); : : 展開隻如下 : : i=++x*++x-++x*++x : : 再加上運算優先括號 : : i=[(++x*++x)-(++x*++x)] : : 又運算方向為由左至右,因此 : : i=[(++x*++x)-(++x*++x)] : : 4 5 : : 遇到)時做*運算 此時x=5 : : 所以為 5*5=25 : : 再來做第2個()運算,即 : : i=[25-(++x*++x)] : : 6 7 : : 遇到)時做*運算 此時x=7 : : 所以為 7*7=49 : : 最後再做[]中的-運算 : : i=[25-49]=-24 : 唉,要瞭解「十誡」的真諦是很不容易的。 : 請容我再重述其中與上述問題相關的一條: : 「你不可以在一個運算式(expression)中,對一個基本型態的變數 : 修改其值超過一次以上。」 : 否則,將導致未定義的後果(undefined behavior). 可以請問一下這一條規定 源自那嗎? 我的K&R那本書找不到耶!!! 是在C99中的新的規定嘛 or ............ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.131.137.219
LPH66:這是合語法的 只是行為不確定而已 219.84.44.21 08/29