首页 > 解决方案 > 为什么输出为 8883。代码是如何执行的?

问题描述

变量i正在成为8循环的第一个条目。那么i <= 2下次条件如何满足呢?

#include <stdio.h>

int main() 
{
    int i;
    for (i = 0; i <= 2; i++) 
   {
        int i = 8;
        printf("%d", i);
    }
    printf("%d", i);
    return 0;
}

标签: cloopsfor-loopexecution

解决方案


8它从 i = 0、i = 1 和 i = 2 的循环中打印3 次。

for(i=0;i<=2;i++)
{
   int i=8;
   printf("%d",i);
}

第二个变量i(在循环体内声明的变量)不会影响第一个变量(在循环i外声明的变量),因为它是在不同的范围内声明的,即在循环内。

最后的最后 3 个来自因为i在退出循环之前最里面的部分将在最后一次增加。因此对于:

printf("%d",i);

该变量i将取值 3。


推荐阅读