Re: [FAQ&FME] C 語言新手十誡

看板C_and_CPP (C/C++)作者 (洗屁屁)時間19年前 (2005/08/29 16:02), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串12/14 (看更多)
※ 引述《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

219.84.44.21 08/29, , 1F
這是合語法的 只是行為不確定而已
219.84.44.21 08/29, 1F
文章代碼(AID): #134i4jB4 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #134i4jB4 (C_and_CPP)