作者Fenikso (我是蜜蜂~)
看板C_and_CPP
標題Re: [問題] 新手十誡疑問
時間Wed Feb 4 20:27:56 2009
※ 引述《cfbbq (CF)》之銘言:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc)
: ◆ From: 125.224.150.217
: → james732:應該就是不要在同一行裡面對一個變數又改又讀的意思...? 02/04 18:10
: → cfbbq:我知道,但是我覺得沒錯阿,只要不要<<i++ + i;這種就好吧? 02/04 18:13
: → cfbbq:<<i++<<i;這不是一個運算是阿! 02/04 18:14
: 推 ledia:<< 也是運算子呀 02/04 18:27
: 推 LPH66:問題如同前幾篇 i++結算的時間不確定 02/04 18:33
: → LPH66:雖然順序是由左到右 (<<是左結合) 但i++卻不確定會何時結算 02/04 18:33
: 推 StubbornLin:http://0rz.tw/d74Qx 02/04 19:17
: → cfbbq:我的疑問是:cout<<i++<<i;跟cout<<i++;cout<<i;似乎等於? 02/04 19:45
: → akasan:表面上一樣而已cout<<i++;cout<<i;會保證其求值順序 02/04 20:14
: → akasan:cout<<i++<<i;則是無法確定到底是i先求值還是i++先求值 02/04 20:15
其實可以 這邊是特例..
function call之前有sequence point
這邊的cout<<i++<<i等價於cout.operator<<(i++).operator<<(i)
可以保證i++先被evaluate, 而且在eval第二個i之前加一
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.156.17
推 cfbbq:先謝謝。可以給我不是特例的嗎?<<i++<<i;的特例, 02/04 20:30
→ cfbbq:非<<i++ + i; 02/04 20:30
→ Fenikso:就.. a<<i++<<i a是個int 02/04 20:31
推 legendmtg:有=的運算 02/04 20:31
推 cfbbq:糟糕 我還是不懂.. 02/04 20:35
→ cfbbq:新手十誡第九項後半部的錯誤例子有舉錯嗎?我是不懂他例子想 02/04 20:38
→ cfbbq:表達什麼,不是錯誤跟正確是一樣的嗎? 02/04 20:38
我覺得他的重點是"不管什麼場合都不要這樣寫"
只是剛好舉了一個保證不會錯的例子(汗
※ 編輯: Fenikso 來自: 122.116.156.17 (02/04 20:39)
推 cfbbq:哈,你一定覺得我很煩,辛苦你了,3Q! 02/04 20:41
→ Fenikso:不會啦 有動腦想是好事XD 02/04 20:42