呐咯密密 发表于 2025-4-30 16:05

为啥不能在for循环中定义变量

for(int i=0;i<5;i++)这种会报错咋回事,我记得以前好像是可以的啊

钓鱼大师 发表于 2025-5-5 16:30

会不会和编译器有关?

GlenX 发表于 2025-5-8 09:27

可以定义,但不能下次还记得上次的值,这是不可能的。
也就是这个变量不能作为下次进来的输入值,要么默认这个值总是从一个不确定的值开始的。

dffzh 发表于 2025-5-9 14:03

这个主要由编译器版本标准决定的:
在 C 或 C++ 中,在某些如 C89 或早期的 C++ 标准的旧版本编译器中可能会报错的;
因为在这些标准中,循环变量 i 必须在循环外部声明,而不能直接在 for 循环内部定义;
C99 及以后的标准允许在for循环内部声明变量。

有些场景可能还不允许在代码之间定义变量,如以下的操作定义变量i,编译会报错:
代码语句1;
int i;
代码语句2;
这个时候我们就没办法以“就近使用就近定义”的原则进行变量定义,而只能统一在代码开始之前定义好所有需要用到的变量。
页: [1]
查看完整版本: 为啥不能在for循环中定义变量