作者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