for循环中定义的变量 在程序的其他地方无法使用

RT
code
运行环境:win7 dev c++

 # include <stdio.h>
# include <stdlib.h>
# include <windows.h>
int main ()

{

    for(int i = 1;i<=100;i++)
    {
        printf("%d\n",i);
    }

    printf("%d\n",i);       
    return 0;
} 

程序会报错关于i的值的问题
[Error] name lookup of 'i' changed for ISO 'for' scoping [-fpermissive]
Note
英语渣 用百度翻译出一堆看出懂的东西
[Error] lookup name of'i'改变 为 ISO'for'scoping [-fpermissive]
[Note] ( 如果 你 使用'-fpermissive'G++ 将 接受 你 的 代码 )
乱七八糟的 好像是在for循环中定义的变量i在printf里面不能使用 是这样吗?
我在for循环外面又定义了一次变量i 结果就可以在printf里面使用了.

变量的作用域问题,一般以{}为界

变量定义的范围问题,你在for里定义,只在for中有效,到了printf时,变量已经无效了。

变量i是在for循环中定义的,作用域在for循环以内。