【C语言】这个代码属实给我整不会了


int main()
{
    char stra[] = { "abcdefghijklmnopqrstuvwxyz" };
    int n = 26;
    for (int i = 0; i < n; i++);
    {
        int k = i;  //但是在这块的i会报错  报错为i未定义
        for (int j = 0; j < n; ++j)
        {
            printf("%c", stra[k]);
            k = (k + 1) % n;
        }
        printf("\n");
    }
    printf("\n");
    return 0;
}

报错如下所示 为啥呀

img

for (int i = 0; i < n; i++);
删了末尾的分号

第一个for语句后面不要写分号,写了分号就相当于这个for语句已经结束,而你的i是定义在第一个for循环里面的,所以i的有效使用范围是第一个for循环。

变量作用域问题,for循环for(var, condition, update)结构括号后面不能跟分号,否则i就定义在了for内部,跟下方循环体无关了