对于两个同名的局部变量 如何得知在执行某个操作时如何得知该操作会使用哪个值?

#include  <stdio.h>
int Square(int i)
{
    return i*i;
}
int main()
{
    int i =0;
    i=Square(i);
    for(;i<3;i++)
    {
        static int i =1;
        i+=Square(i);
        printf("%d,",i);
    }
    printf("%d\n",i);
    return 0;
}

在该代码中,for循环内部所使用的变量一直是在其内部定义的静态变量i
对于外部判断条件时的i和内部的i 如何知道系统使用哪个量进行操作?

就近原则,for循环内使用里面的,其余使用外面的
但是最好还是不要重名