为什么do数字(数字> 10)会产生无限循环?

时间:2018-01-18 08:15:06

标签: c loops while-loop initialization int

根据我的理解,while应该结束循环,原因 int数字“in”循环应该用0初始化它。 或者我错了?但它给了我一个无限循环,打印零。 我用gcc编译它并尝试用gdb调试它。 对我来说没有意义,因为while不会阻止循环。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int number = 20;
    do
    {
        int number = number / 2;
        printf("%d ", number);
    } while (number > 10);
}

1 个答案:

答案 0 :(得分:8)

每次在循环中创建新的number,仅在循环内可见,与循环外的那个无关。移除int

中的int number = number / 2;