作者sjrom (淡淡的藍)
看板Programming
標題[問題] i++,++i
時間Tue Nov 25 18:17:53 2008
程式如下
main()
{
int i=5,j=5,p,q;
p=(i++)+(i++)+(i++)+(++i)+(++i);
q=(++j)+(++j)+(++j));
printf("%d\n,%d\n,%d\n,%d\n",p,q,i,j); //28,22,10,8
}
註解是印出來的值,如果是
p=(i++)+(i++)+(i++); //p的值是 15
↑這個可以理解,可用這個想法來想++i,卻解不出上面的答案
這和compile有關嗎? 我用vc6跑的.
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.221.67.235
1F:推 chrisdar:你想太多 這個是各編譯器各自表述 163.23.35.94 11/25 18:31
2F:→ james732:寫這種程式到底有什麼好處.... 59.104.62.66 11/25 19:27
3F:推 StubbornLin:如何寫出讓老闆開除你的程式碼第一章 118.170.80.119 11/25 19:36
5F:→ StubbornLin:可以參考看看 118.170.80.119 11/25 19:37
6F:推 bobhsiao:我猜是學校的作業... 122.116.148.71 11/25 21:09
7F:→ airzone:寫出這種程式會被我們主管在週會時,把 218.169.48.99 11/25 22:54
8F:→ airzone:寫的人叫起來罵 218.169.48.99 11/25 22:56
9F:→ sjrom:回1F,有一篇討論類似的,有人回應到 61.221.67.235 11/26 10:05
10F:→ sjrom:和compile有關,回7F,這不是學校作業,我不 61.221.67.235 11/26 10:05
11F:→ sjrom:是學生,只是我自己手癢試試,發現和以前所 61.221.67.235 11/26 10:06
12F:→ sjrom:學觀念不同,故希望是否有人能回答小弟疑問. 61.221.67.235 11/26 10:07
13F:→ sjrom:該討論串是 z-3-4-1 61.221.67.235 11/26 10:08
14F:推 Clain66:Undefined behavior118.161.145.139 11/26 10:18
15F:→ Clain66:google "side effect sequence point"118.161.145.139 11/26 10:19
16F:→ Clain66:之所以不用不是因為很難懂,而是這東西從118.161.145.139 11/26 10:21
17F:→ Clain66:頭到尾都是錯誤的觀念唷。118.161.145.139 11/26 10:21
18F:→ sjrom:o .thx.不過若要維護這種程式的話我會想打人 61.221.67.235 11/26 11:12
19F:→ sjrom:不過印象中以前考試還蠻常考的..Orz 61.221.67.235 11/26 11:13
20F:推 abcdefghi:很多授課老師根本沒在業界team的經驗,別 140.113.23.107 11/26 11:52
21F:→ abcdefghi:太相信他們的考題,這種寫法完全不用研究 140.113.23.107 11/26 11:53