作者cppguide (洗屁屁)
看板C_and_CPP
標題Re: [FAQ&FME] C 語言新手十誡
時間Mon Aug 29 16:08:49 2005
※ 引述《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
1F:推 LPH66:這是合語法的 只是行為不確定而已 219.84.44.21 08/29