gpt4 book ai didi

c++ - 在循环外使用for循环变量是错误的吗?

转载 作者:太空狗 更新时间:2023-10-29 23:32:42 25 4
gpt4 key购买 nike

例如,考虑这段代码:

#include <iostream>

int main() {
for( int i=0; i<10; i++ );

// USING i OUTSIDE for LOOP
std::cout << i;
return 0;
}

当我在 g++ 下编译它时,它说 “'i' 的名称查找已更改为 ISO 'for' 范围,(如果您使用 '-fpermissive' G++ 将接受您的代码)”

我认为问题在于范围界定。变量 i 在范围内声明并在范围外使用。当我要求时,我们的老师允许这样做。 错了吗?

最佳答案

ISO 'for' 范围界定 指的是 C++ 标准。在旧标准(或者更可能是支持它的旧编译器)中,循环变量的范围是包含 for 语句的范围。但是,这发生了变化,这就是您收到该错误的原因。

关于提及 -fpermissive 的此类错误的一般提示:导致这些消息的结构通常(很长)已过时,并且被旧标准或旧编译器允许。因此,存在依赖于过时行为的旧代码。您不应该编写需要该选项的新代码;它更像是一种快速修复,可以让遗留代码快速在新的 GCC 版本上运行。

关于c++ - 在循环外使用for循环变量是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32352661/

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