gpt4 book ai didi

c - C 编程中的变量作用域

转载 作者:行者123 更新时间:2023-12-02 05:50:15 24 4
gpt4 key购买 nike

在 c 中,当这段代码运行时,它输出 10 10 10 10 10。我认为循环应该在第一次执行后退出,因为 i 变为 11,但它没有发生。为什么会这样?

#include<stdio.h>
int main()
{
int i;
for(i=0;i<5;i++)
{
int i=10;
printf("%d\t",i);
i++;
}
return;
}

但是当程序编写如下时,输出类似于我的想法(即 10 )。上面的代码和下面显示的代码之间的确切区别是什么? C如何处理这些变量?如果有人对此进行解释,我会很高兴。
#include<stdio.h>
int main()
{
int i;
for(i=0;i<5;i++)
{
i=10;
printf("%d\t",i);
i++;
}
return;
}

最佳答案

在您的第一个程序中,for循环正在使用 ifor 之外声明来控制循环。 printf使用 ifor 中声明循环打印值和这个 i有 block 作用域。
i的新声明在为loop暂时隐藏旧的声明。现在 i 的值是 10 .在 for 的末尾循环阻止新的i对程序不可见,变量恢复其旧含义,这一次 i根据循环的迭代存储值(1234)。

关于c - C 编程中的变量作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20815771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com