作者oohay (五黑)
看板C_and_CPP
標題Re: [問題] 面試遇到的一個問題
時間Sun Feb 3 17:10:38 2008
※ 引述《LPH66 (IWH68S0XZ8M89)》之銘言:
: ※ 引述《oohay (五黑)》之銘言:
: : 這裏例子還差一點才到達那個所謂未定義行為,
: : z++ + z
: : 對z只打算更新一次.
: : 十誡第十條所指的必須是在同ㄧexpression打算更新同一變數二次以上.
: : 那才有未定義行為.
: 唔? 我覺得這裡有一點這個問題:
: 到底它是
: 求(z++)的值(ie.取z的值) => 求z的值 => 加起來 => 做z=z+1
: 還是
: 求(z++)的值(ie.取z的值) => 做z=z+1 => 求z的值 => 加起來
: 這兩個結果不一樣吧 @@ (也就是"z=z+1"什麼時候做)
: 如果執行前z=5
: 那第一個順序的+得值10 第二個順序的+得值11
喔對,自己也搞得很混淆, Java的 z++ + z
改寫成普通程式碼,應該是:
int t = z++;
t + z;
而不是沒思考清楚就提的 (z++, z+z), 抱歉造成混淆.
--
→ pTT:灌C可以搞阿嬌啊?
推 :我的Visual C++光碟哪裏去了?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.160.114.86
推 ckclark:a++ + b卻又不是這麼回事哦 02/03 17:12
→ oohay:a++ + b不是 int t=a++; t + b 的意思嗎? 02/03 17:15
→ oohay:喔,我知道什麼意思了,刪掉這篇重來. 02/03 17:16
→ oohay:嗯...不用刪,應該沒錯啦 02/03 17:17
推 ckclark:我也搞錯了 02/03 17:27