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的值。除非你想挣脱循环,知道你是什么时候做的。除非你想挣脱循环,知道你是什么时候做的。