为什么VS2010中for(int i=0;i<10;i++)语句编译会报错?

解决方案 »

  1.   

    把int i=0写到外面,编译器对语法的要求严格了。
      

  2.   

    应该就是这个问题了
    是不是你之前还有一个for循环也是类似这样定义了一个i
      

  3.   

    应该不会报错
    你想啊,他要向下兼容,以前老大个的工程用vc6,要移植到2010的话,那我用了for(int i= 0; i < 10; i++)
    没报错,连个警告都没给
      

  4.   

    谁说把定义放在for外面才标准,放里面才标准。
      

  5.   

    vc2010中for里面定义的变量,作用域已经只在for内部了,与外面的无关。
    所以最好贴出出错的信息,不要犯全角字符的错误。
      

  6.   

    我日常开发用的就是2010,没有必须在for之外定义变量的说法。比如:
    vector<char> a;
    for( size_t i = 0, j = a.size(); i < j; ++ i )
    {
    ...
    }这样用是绝对不会报错的。
      

  7.   

    下面随便写了个程序:
    #include<stdio.h>
    int main(void)
    {
    for(int i=0;i<10;i++)
       printf("%d\n",i);
    return 0;
    }编译错误提示如下:
    1>f:\学习文件\microsoft visual studio\forceshi\forceshi\fortest.c(4): error C2143: 语法错误 : 缺少“)”(在“类型”的前面)
    1>f:\学习文件\microsoft visual studio\forceshi\forceshi\fortest.c(4): error C2143: 语法错误 : 缺少“;”(在“类型”的前面)
    1>f:\学习文件\microsoft visual studio\forceshi\forceshi\fortest.c(4): error C2065: “i”: 未声明的标识符
    1>f:\学习文件\microsoft visual studio\forceshi\forceshi\fortest.c(4): warning C4552: “<”: 运算符不起任何作用;应输入带副作用的运算符
    1>f:\学习文件\microsoft visual studio\forceshi\forceshi\fortest.c(4): error C2065: “i”: 未声明的标识符
    1>f:\学习文件\microsoft visual studio\forceshi\forceshi\fortest.c(4): error C2059: 语法错误:“)”
    1>f:\学习文件\microsoft visual studio\forceshi\forceshi\fortest.c(5): error C2146: 语法错误: 缺少“;”(在标识符“printf”的前面)
    1>f:\学习文件\microsoft visual studio\forceshi\forceshi\fortest.c(5): error C2065: “i”: 未声明的标识符
    1>
    1>生成失败。