gpt4 book ai didi

c - 解释给定代码的输出

转载 作者:行者123 更新时间:2023-11-30 18:22:01 25 4
gpt4 key购买 nike

在下面的代码中,变量 i 已在 for 循环中全局和本地声明。由于局部变量的优先级较高, i 将被初始化为值 10 。但是在第一次循环时,由于for循环中的i++,i的值会变成11,那么难道不应该只在第一次出现后就退出循环吗?

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

}

PS:答案是10 10 10 10 10

最佳答案

优先级不仅仅与初始化有关。循环体内部的变量i是一个与外部不同的变量。它“遮蔽”外部 i,使其在循环体中无法访问。

循环控制语句位于循环体之外。它的 i 是外部 i,对内部 i 所做的任何操作都不会对其产生任何影响,因此它从 0 开始,一直计数到5. 在每次循环迭代时,内部 i 都会重新初始化为 10,这就是打印的值。

关于c - 解释给定代码的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31491902/

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