作者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