2

可能重复:
C:for loop int 初始声明

我们可以在 C 编程的语句中声明一些变量for吗?如果可以,我们将在哪个版本的 c 标准中找到该功能?

4

3 回答 3

3

是的,您可以从 c99 标准开始。直接编译代码:

int main()
{
   for(int i = 0; i<10; i++)
     printf("%d\n", i);
   return 0;
}

with(默认的“gnu89”)gcc会给你答案:

在函数中main
错误:仅在 C99 模式下才允许使用“for”循环初始声明
注意:使用选项 -std=c99 或 -std=gnu99 编译代码

于 2012-12-21T13:47:02.310 回答
1

在 C89/C90 中,所有声明都必须出现在块的开头:

/* valid in C89/C90 */
printf("Hello\n");
{
    int i;
    for (i = 0; i < 10; i++) {
        int j = i % 3;
        printf("%d\n", j);
    }
}

从 C99 开始,您可以混合声明和语句,并在 a 的第一部分声明变量for

/* valid in C99 */
printf("Hello\n");
int whatever;
for (int i = 0; i < 10; i++) {
    int j = i % 3;
    printf("%d\n", j);
}
于 2012-12-21T13:50:41.273 回答
-1

在纯 C 中,您不能在语句中声明变量for。此功能仅在 C++ 中可用。在 C 中,所有变量都必须在代码块的开头声明

于 2012-12-21T13:45:02.023 回答