我的程序中的一部分,总是说第二个int i 的定义重复,在这段代码之前没有定义过 i
……………………
                      for (int i=0;i<19;++i)
    for (int y=0;y<11;++y)
       Llk[i][y]=-1; int a,b,c,d,Temp;
for (int i=0;i<19;++i)
   for (int j=0;j<11;++j)
…………           报错
 error C2374: 'i' : redefinition; multiple initialization
: see declaration of 'i'错在哪里了?

解决方案 »

  1.   

    for (int i=0;i<19;++i)
        for (int y=0;y<11;++y)
           Llk[i][y]=-1; int a,b,c,d,Temp;
    //这儿-----> for (int i=0;i<19;++i)
       for (int j=0;j<11;++j)
    …………
      

  2.   

    VC的C++编译器不是很标准的编译器,你在一个循环中定义了int i,在这个循环结束以后i仍然存在,呵呵,但是标准的C++编译器好像就是立即销毁了i这个变量。所以说重复定义。
      

  3.   

    因为:
    for(int i = 0...) 
    等价于
    int i ;
    for (i=0;...)所以下面不能再定义i.
    直接使用for(i=0;...)即可。
      

  4.   

    这一点好像和Java的变量定义的不一样,呵呵,但是函数结束了以后这个i是肯定不能用的。呵呵
      

  5.   

    FAINT那你就在循环外定义啊。。兄弟int i, j, y;
    for (i=0;i<19;++i)
        for (y=0;y<11;++y)
           Llk[i][y]=-1;
      

  6.   

    for (int i=0;i<19;++i)//这里定义了i
        for (int y=0;y<11;++y)
           Llk[i][y]=-1; int a,b,c,d,Temp;
    for (i=0;i<19;++i)//这里就不要再定义了。
       for (int j=0;j<11;++j)
    …………           
      

  7.   

    问题是在Llk[i][y]=-1;
    这里已经把循环给退出来了,难道我没有从for (int i=0;i<19;++i退出来吗?如果没有,怎么从这个循环退出?
      

  8.   

    编译器vc6的对i在for中的作用范围的影响
    去掉就好了
      

  9.   

    虽然在Llk[i][y]=-1;
    这里已经把循环给退出来了,但是变量还在程序体的作用范围里。