变量的作用域问题!

ccchhhhhh 2004-07-27 02:50:14
#include <iostream>
using namespace std ;

void main()
{

for(int i=0;i<5;i++)
for(int j=0;j<5;j++);

for(int i=0;i<5;i++)
for(int j=0;j<5;j++);

}

为什么变量 i 会因为重复定义而通不过呢?
在这里的作用域不是块级的吗?第一个i应该退出第一个循环就不可见了啊。
所以第二个i的定义应该不会存在重复定义的问题啊!
...全文
144 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
uffeng 2004-07-28
  • 打赏
  • 举报
回复
何必一定要 拘泥这些小节呢?? 定义一个 全局的i 对你的程序 应该没有影响的!!
此贴 不Up!
oldjackyone 2004-07-28
  • 打赏
  • 举报
回复
C++标准中是可以像楼主那样的声明与定义,但VC6.0与标准有一定的差别。

DEV C++ 可以说是一个标准编译。
文斌 2004-07-27
  • 打赏
  • 举报
回复
是啊,那个编译器都不可能十全十美的,顺应它吧,要不自己写一个?
有空到文斌的程序员小站坐坐吧,http://wenbin.anyp.cn
naibmys 2004-07-27
  • 打赏
  • 举报
回复
编译器对 for(int i=0;i<5;i++) 解释是
int i;
for(i=0; i<5; )
{
...
i++;
}
kaphoon 2004-07-27
  • 打赏
  • 举报
回复
没有一个编译器是完全符合C++标准的
所以只能"顺应"它,因为vc6在其他方面不错,尽管我早就删了它~~
RookieStar 2004-07-27
  • 打赏
  • 举报
回复
C++ Standard 是支持你的写法的,VC6的确……

两者选择:要么顺应它,要么颠覆它!
Qyc0123 2004-07-27
  • 打赏
  • 举报
回复
换一个更新一点的版本,对C++标准的兼容性会更好
qiqi162002 2004-07-27
  • 打赏
  • 举报
回复
唉VC6老是~~~~~~~~~~~~~
积木 2004-07-27
  • 打赏
  • 举报
回复
现在我遇到的编译器也就是VC6不支持这个~
这个不是你的问题,是VC6的问题。
aganpro 2004-07-27
  • 打赏
  • 举报
回复
c++标准是支持在那里使用,就可以在那里申明变量的
boyszz 2004-07-27
  • 打赏
  • 举报
回复
for(int i=0;i<5;i++)
for(int j=0;j<5;j++);

for(int i=0;i<5;i++)
for(int j=0;j<5;j++);

这样的代码没问题吗?我最近刚开始学C,C++没接触过。在C中我认为这是缺少语句结束';'的。

cathy97 2004-07-27
  • 打赏
  • 举报
回复
这和编译器有关,在c++标准中这样写是不行的,本人在VC中写这样的代码放到linux下用g++编译就会出现错误,因为g++编译器更接近标准C++.
ccchhhhhh 2004-07-27
  • 打赏
  • 举报
回复
忘记说编译环境了,以上是VC6上运行。
不过我刚刚用DEV C++ 却不会出现重定义的错误!我晕!

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧