当前位置: 代码迷 >> C语言 >> [问题已解决][求助] why???
  详细解决方案

[问题已解决][求助] why???

热度:194   发布时间:2006-07-16 16:17:23.0

刚刚不小心 for(i=0;i<3;i++); 多了个;
可是编译时竟然没报错,只是出了错误的答案,
现在知道了,谢啦~~~~~~


----------------解决方案--------------------------------------------------------


for(i=0;i<3;i++); //这里多个分号

一个笔误也能让这么多人来回答...都真闲啊
----------------解决方案--------------------------------------------------------
..................................
----------------解决方案--------------------------------------------------------
以下是引用摄政王:多尔滚在2006-7-16 16:14:20的发言:
b=a[i--]; ===> i = 3

c=a[i]; ====> i = 2

i=3??不对吧


----------------解决方案--------------------------------------------------------
right
----------------解决方案--------------------------------------------------------
没错。要结束后才是i=2。自减自加

如果是i--就是当i--存在的那行语句运行完后再减的!
----------------解决方案--------------------------------------------------------
为什么其实是错的,编译时却不报错啊?
----------------解决方案--------------------------------------------------------
for(i=0;i<3;i++);

===>
for(i=0;i<3;i++)
{
;
}

----------------解决方案--------------------------------------------------------
以下是引用摄政王:多尔滚在2006-7-16 16:27:26的发言:
for(i=0;i<3;i++);


===>

for(i=0;i<3;i++)

{

;

}

这我知道了呀,for 后面多了一个分号,
我想问的是在 for(i=0;i<3;i++); 编译时为什么不报错啊?只是出了错误的答案
是编译器不好吗?还是本来就检查不出来的啊?

----------------解决方案--------------------------------------------------------
for(i=0;i<3;i++);

===>

right statement

----------------解决方案--------------------------------------------------------

  相关解决方案