gpt4 book ai didi

c - c in循环和外循环中的变量重新声明?

转载 作者:行者123 更新时间:2023-11-30 21:01:55 26 4
gpt4 key购买 nike

int i; 语句在程序中声明两次时,它会显示错误,但当 int i; 被写入运行两次的 for 循环时,它没有显示任何错误。

#include<stdio.h>//code 1 showing error
int main()
{
int i;
int i;
return 0;
}
#include<stdio.h>//code 2 no error
int main()
{
for(int j=1;j<=2;j++)
int i;
return 0;
}

最佳答案

为了理解您的问题,也称为变量的范围,让我们看看以下示例程序:

#include <stdio.h> 

int main(int argc, char *argv[])
{
int I = -1;
for (int I = 0; I < 3; I++) {
printf("%d\n", I);
}
printf("%d\n", I);
{
int I = 200;
printf("%d\n", I);
}
return 0;
}

如您所见,我声明了变量 I 三次。

当声明到循环中时,结果将是打印以下值:

0
1
2

在 for 循环之后,当我再次打印 I 变量时,我现在引用在 for 循环外部声明的变量,即我声明的第一个变量,因此结果将是:

-1

现在,如果我用大括号打开一个新作用域,并声明一个具有相同名称但具有不同值的新变量,我将得到:

200

我希望我对变量范围的描述现在已经清楚了

关于c - c in循环和外循环中的变量重新声明?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33842329/

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