随笔 - 62  文章 - 96  trackbacks - 0
<2006年5月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿(7)

随笔分类(66)

随笔档案(62)

文章分类(31)

文章档案(32)

友情链接

最新随笔

积分与排名

  • 积分 - 233617
  • 排名 - 108

最新评论

阅读排行榜

评论排行榜

一直以来就有一个问题困惑着我,

对于下面一段程序:

#include<iostream>
using namespace std;
int main()
{
     for(int i=0;i<10;i++)
     {/*content*/}
  
     for(int i=0;i<10;i++)
     {/*content*/}   

      return 0;
}

在VC 6.0编译器中是“i” redefinition。

而在Dev-C++编译器中是完全正确的。

我也一直搞不清楚i的作用域是什么。

直到看过Primer后才知道有一种作用域叫做“语句作用域”。

就是说就上述问题的i只能在for语句中使用。

这就是说这是VC 6.0的一个Bug,真是这样吗?


 

posted on 2006-05-03 01:11 beyonlin 阅读(969) 评论(7)  编辑 收藏 引用 所属分类: C++之路

FeedBack:
# re: 关于语句作用域 2006-05-03 10:23 一些幸运
VC6的编译器对C++标准的支持不好
学标准C++最好用gcc  回复  更多评论
  
# re: 关于语句作用域 2006-05-03 10:30 史传红
是的,标准规定了for(int i=0;i<10;i++)中的i只在语句内有效,可见。
  回复  更多评论
  
# re: 关于语句作用域 2006-05-03 10:47 newsuppy
VC6明确不支持语句作用域阿。  回复  更多评论
  
# re: 关于语句作用域 2006-05-03 11:42 CoderDream
#include<iostream>
using namespace std;
int main()
{
{
for(int i=0;i<10;i++)
{/*content*/}
}
{
for(int i=0;i<10;i++)
{/*content*/}
}

return 0;
}

这样就不会报错了!  回复  更多评论
  
# re: 关于语句作用域 2006-05-03 11:54 Tauruser
vc6.0对标准C++支持不是很好,
vc8.0就好多了。  回复  更多评论
  
# re: 关于语句作用域 2006-05-03 21:28 zhaoliyi
以前
for(int i=0;i<10;i++)
{/*content*/}

int i=0;
for(;i<10;i++)
所以。。。不言而喻  回复  更多评论
  
# re: 关于语句作用域 2006-09-06 17:11 hunterz
#include<iostream>
using namespace std;
int main()
{
for(int i=0;i<10;i++)
{
std::cout<<i<<endl;
}

for( ;i>0;i--)
{
std::cout<<i<<endl;
}

return 0;
}
  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理