gpt4 book ai didi

c++ - 关于重新定义的琐碎问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:14:29 24 4
gpt4 key购买 nike

为什么不允许这样做:

int a = 0;
int a = 0;

但这是:

for (int i = 0; i < 2; ++i)
{
int a = 0;
}

据我所知,for 循环中的代码将执行两次而实际上并没有超出其范围,因此定义两次 a 也应该是错误的。
期待您的回答
谢谢。

最佳答案

for 循环中只有一个定义。变量被创建、使用,然后在右花括号处销毁,并在下一个循环迭代中重新创建。定义了一个变量。

这有点类似于函数中定义的变量。函数可以调用多次,但变量是一个。事实上,对于函数,可以递归调用函数,并且会有多个变量存在,但对于函数的每次执行,都定义了一个变量。

编辑:请注意,正如@xtofl 正确指出的那样,i 的生命周期是整个 for 循环,而 a 的生命周期是 curly 中的 block 大括号:for 循环的单次迭代。

关于c++ - 关于重新定义的琐碎问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2712560/

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