[問題] n++問題

作者: calee0219 (Gavin Lee)   2016-01-19 17:27:07
開發平台(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):
作者: stupid0319 (徵女友)   2016-01-19 17:32:00
無義意的code不要去想他好了
作者: littleshan (我要加入劍道社!)   2016-01-19 17:36:00
置底13戒看一下
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-01-19 17:38:00
小明立志要跟昨天的小明一樣好
作者: calee0219 (Gavin Lee)   2016-01-19 18:05:00
不好意思,我看到了十三戒了,謝謝,我錯了,sorry
作者: johnpage (johnpage)   2016-01-19 19:29:00
count = ++count;
作者: overhead (overhead)   2016-01-19 20:03:00
別花時間在無意義的事情上
作者: qscgy4 (有點厲害)   2016-01-20 00:47:00
WTF....這個寫法真有創意!?
作者: wvwvwvwvwv (殺死丁力這個雜碎a~)   2016-01-20 17:34:00
想了一下覺得 wtf 這啥
作者: Killercat (殺人貓™)   2016-01-21 06:08:00
woo that's fantastic的意思
作者: elysium5290 (他塌塌塌塌)   2016-01-21 10:49:00
因為編譯器會把這段code 當成Int tmp = countcount++Count = tmp
作者: samuelcdf (溫泉龜)   2016-01-21 11:37:00
背前置和後置最無聊了, 不確定就用括弧, 清楚明瞭上班寫這種code可以懷疑是想挖坑給自己/別人跳
作者: littleshan (我要加入劍道社!)   2016-01-21 11:55:00
樓上&樓樓上:這邊並不是求值先後順序的問題而是賦值順序未定義,即使加上括號其結果仍然是未定義
作者: bdvstg (bdvstg)   2016-01-21 16:23:00
我今天在同事那邊試過 是 1 (我原本期望是 0 )環境是 VC2012 (原本想要弄惡搞程式碼XDD)找時間來測測其他編譯器會怎麼處裡好了XD
作者: MOONRAKER (㊣牛鶴鰻毛人)   2016-01-21 17:25:00
以前在學校還滿常見這種寫法 而且妙的是不會錯想來應該很多人就此養成壞習慣 :|
作者: m54188 (強者修練生)   2016-01-23 06:56:00
只能說樓主很有創意..
作者: ronin728 (浪人)   2016-01-23 13:10:00
這自己用編譯器生出組合語言來看就知道了

Links booklink

Contact Us: admin [ a t ] ucptt.com