C 申报差异?

C 申报差异?,c,for-loop,C,For Loop,在循环中使用之前声明变量和在循环中定义变量有什么区别 我说的是这种情况 int i; for(i=0; i<100; i++); inti; 对于(i=0;i在第一种情况下,i可在for循环之外访问 在第二种情况下,i的范围限于for循环体 可以说,第二种情况为您提供了更好的程序稳定性,因为在for循环之外使用i通常是无意的。在第一种情况下,i可以在for循环之外访问 在第二种情况下,i的范围限于for循环体 可以说,第二种情况为您提供了更好的程序稳定性,因为在for循环之外使用i通常

在循环中使用之前声明变量和在循环中定义变量有什么区别

我说的是这种情况

int i;

for(i=0; i<100; i++);
inti;

对于(i=0;i在第一种情况下,
i
可在
for
循环之外访问

在第二种情况下,
i
的范围限于
for
循环体


可以说,第二种情况为您提供了更好的程序稳定性,因为在
for
循环之外使用
i
通常是无意的。

在第一种情况下,
i
可以在
for
循环之外访问

在第二种情况下,
i
的范围限于
for
循环体


可以说,第二种情况为您提供了更好的程序稳定性,因为在
for
循环之外使用
i
通常是无意的。

这是“范围”。在第二种情况下,您只能在for循环内使用变量。在第一种情况下,在整个包含块中使用变量。

这是“范围”。在第二种情况下,只能在for循环中使用变量。在第一种情况下-在整个包含块中。

在第一种情况下,
i
可以在当前块中的循环外部访问。在第二种情况下,不能在循环中声明变量,因此必须坚持此方法


在第二种情况下,
i
不能在循环外部访问。在循环中声明变量是一项功能。

在第一种情况下,
i
可以在当前块的循环外部访问。在第二种情况下,不能在循环中声明变量,因此必须坚持此方法


在第二种情况下,
i
不能在循环外部访问。在循环中声明变量是一项功能。

在循环之前执行此操作时,变量也可以在循环外部使用。 而当你在它里面做的时候,它是一个局部变量,只能在循环里面使用


此外,在使用C99标准时,您可以在循环内声明变量。但它不适用于C90。因此,请注意这一点。

在循环之前声明变量时,该变量在循环外也可用。 而当你在它里面做的时候,它是一个局部变量,只能在循环里面使用


此外,在使用C99标准时,您可以在循环内声明变量。但它不适用于例如C90。因此,请注意这一点。

在前一种情况下,您可以在for循环外访问
i
。如果您的循环中有条件中断,这可能是有利的,例如:

int i = 0;

for (i = 0; i < 100; i++) {
    if (someUnexpectedConditionHappens()) {
        break;
    }

    // do something
}

printf("The loop has been executed %d times", i);
inti=0;
对于(i=0;i<100;i++){
如果(某些意外条件发生()){
打破
}
//做点什么
}
printf(“循环已执行%d次”,i);

在前一种情况下,您可以在for循环之外访问
i
。如果您的循环中有条件中断,这可能是有利的,例如:

int i = 0;

for (i = 0; i < 100; i++) {
    if (someUnexpectedConditionHappens()) {
        break;
    }

    // do something
}

printf("The loop has been executed %d times", i);
inti=0;
对于(i=0;i<100;i++){
如果(某些意外条件发生()){
打破
}
//做点什么
}
printf(“循环已执行%d次”,i);

在第一种情况下,假设变量
i
也将在循环后使用,例如

int i;

for(i=0; i<100; i++);

printf( "i = %d\n", i );
int i = 0;

/* some loop used i */

printf( "i = %d\n", i );
也就是说,即使变量不会在循环中或在其他代码中而不是在循环中更改(分配)(通常每个代码都有更改的趋势),我们也会得到一个有效的结果

在第二种情况下,假设变量
i
仅在循环中使用

for(int i=0; i<100; i++);

for(int i=0;i在第一种情况下,假设变量
i
也将在循环后使用,例如

int i;

for(i=0; i<100; i++);

printf( "i = %d\n", i );
int i = 0;

/* some loop used i */

printf( "i = %d\n", i );
也就是说,即使变量不会在循环中或在其他代码中而不是在循环中更改(分配)(通常每个代码都有更改的趋势),我们也会得到一个有效的结果

在第二种情况下,假设变量
i
仅在循环中使用

for(int i=0; i<100; i++);

for(inti=0;i扩展vs现代C。第二个不会在严格的C89下编译。当然,答案是,(撇开C99方面(显然,不应该忽略这一点))是范围。有时你想从循环中分离出来,找出I的值是多少。扩展与现代C。第二个不会在严格的C89下编译。答案当然是,(撇开C99方面不谈(显然,不应该忽略它))是范围界定。有时你想从循环中挣脱出来,找出你这样做时I的值。除非你想挣脱循环,知道你是什么时候做的。除非你想挣脱循环,知道你是什么时候做的。