看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) LINUX & WINDOWS 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) No 問題(Question): 請問,當我寫 count = count++; 時,count 本身值不會改變,這是為什麼呢?謝謝 餵入的資料(Input): NO 預期的正確結果(Expected Output): 1 錯誤結果(Wrong Output): 0 程式碼(Code):(請善用置底文網頁, 記得排版) #includ <stdio.h> int main() { int count = 0; count = count++; printf("%d", count); // it will print 0?? } 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.113.136.218 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1453195629.A.211.html
stupid0319: 無義意的code不要去想他好了 01/19 17:32
littleshan: 置底13戒看一下 01/19 17:36
MOONRAKER: 小明立志要跟昨天的小明一樣好 01/19 17:38
calee0219: 不好意思,我看到了十三戒了,謝謝,我錯了,sorry 01/19 18:05
johnpage: count = ++count; 01/19 19:29
overhead: 別花時間在無意義的事情上 01/19 20:03
qscgy4: WTF....這個寫法真有創意!? 01/20 00:47
wvwvwvwvwv: 想了一下覺得 wtf 這啥 01/20 17:34
Killercat: woo that's fantastic的意思 01/21 06:08
elysium5290: 因為編譯器會把這段code 當成 01/21 10:49
elysium5290: Int tmp = count 01/21 10:50
elysium5290: count++ 01/21 10:50
elysium5290: Count = tmp 01/21 10:50
samuelcdf: 背前置和後置最無聊了, 不確定就用括弧, 清楚明瞭 01/21 11:37
samuelcdf: 上班寫這種code可以懷疑是想挖坑給自己/別人跳 01/21 11:37
littleshan: 樓上&樓樓上:這邊並不是求值先後順序的問題 01/21 11:55
littleshan: 而是賦值順序未定義,即使加上括號其結果仍然是未定義 01/21 11:56
bdvstg: 我今天在同事那邊試過 是 1 (我原本期望是 0 ) 01/21 16:23
bdvstg: 環境是 VC2012 (原本想要弄惡搞程式碼XDD) 01/21 16:24
bdvstg: 找時間來測測其他編譯器會怎麼處裡好了XD 01/21 16:27
MOONRAKER: 以前在學校還滿常見這種寫法 而且妙的是不會錯 01/21 17:25
MOONRAKER: 想來應該很多人就此養成壞習慣 :| 01/21 17:26
m54188: 只能說樓主很有創意.. 01/23 06:56
ronin728: 這自己用編譯器生出組合語言來看就知道了 01/23 13:10