作者VictorTom (鬼翼&娃娃鱼)
看板C_and_CPP
标题Re: [问题] 令我困惑的问题...请大家解惑
时间Mon Aug 24 19:43:34 2009
※ 引述《moto889 (moto)》之铭言:
: 首先恕小弟不才
: 刚研究几行程式(如下)
: ============================
: int main()
: {
: int i=1,j=1,a,b;
: a=i++;
a会等於 i+1之前 的值, 所以a=1.
: b=--i;
b会等於 i-1之後 的值, 所以b=1.
: printf("a=%d",a);
: printf("i=%d",i);
: printf("b=%d",b);
: system("pause");
: }
: =============================
: ~~ 输出为a=1,i=1,b=1
: 问题是为什麽i不是2, b不是0呢??
: 请大家为我解答 谢谢
详细情形情自己去查 i++ 与 ++i 的差别....
而且最近明明就有讨论这些相关的问题:)
==
PS. 因为插行不好推文, 就直接骗一点P币了XD
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.134.41.4
※ 编辑: VictorTom 来自: 220.134.41.4 (08/24 19:44)
1F:推 moto889:那请问为何i=1呢? 08/24 19:55
2F:→ windincloud:i 没被改呀~ 08/24 19:58
3F:→ moto889:b会等於 i-1之後 的值, 所以b=1 (所以i=2罗?) 08/24 20:02
4F:→ moto889:终於懂了...感谢大家 Orz 08/24 20:05
5F:→ VictorTom:i=1, 是因为前面i++过後i值+1了, 之後又--i过值-1回来. 08/24 20:14
6F:→ VictorTom:建议去把 i++ , ++i 前後置运算在干麻给搞清楚:) 08/24 20:14
7F:→ jerrykk:原PO 其实只是不小心把j 写成i 才会困惑 08/25 10:13
8F:→ jerrykk:你应该是要 b=--j; 吧 08/25 10:14