gpt4 book ai didi

c - 函数使用的局部限制

转载 作者:行者123 更新时间:2023-11-30 21:34:16 25 4
gpt4 key购买 nike

FOO 在最终答案中返回“0”的原因是什么:

 int FOO = 0, bar = 0, i;
for (i = 0; i < 4; i++) {
int FOO = i;
printf("%d ", FOO);
if (i % 2 == 0)
FOO += bar;
bar++;
}
printf("%d %d", FOO, bar);

最佳答案

在 foo 循环内部,您定义了一个同名的变量 FOO,这将遮蔽外部的 FOO,这意味着 FOO 您在循环中使用的只是该 block 的本地变量。最终的 printf 位于循环外部,因此它打印的 FOO 位于外部范围内。此时,阴影的 FOO 不再存在。所以代码可以像这样对待:

int FOO_out = 0, bar = 0, i;
for (i = 0; i < 4; i++) {
int FOO_in = i;
printf("%d ", FOO_in);
if (i % 2 == 0)
FOO_in += bar;
bar++;
}
printf("%d %d", FOO_out, bar);

关于c - 函数使用的局部限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36806525/

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