我可以写简单吗
for (int i = 0; ...
而不是
int i;
for (i = 0; ...
在C或C ++中?
(变量i
只能在循环中访问吗?)
答案 0 :(得分:20)
在C ++中有效
在原版C中不合法。
但是在C99中被采用为C的一部分(当一些C ++特性被反向移植到C时)
使用gcc
gcc -std=c99 <file>.c
变量在for语句和循环语句中有效。如果这是一个块语句,那么它对整个块都有效。
for(int loop = 0; loop < 10; ++loop)
{
// loop valid in here aswell
}
// loop NOT valid here.
答案 1 :(得分:18)
是的,它在C ++和C99中是合法的。
答案 2 :(得分:5)
在C99或C ++中执行此操作是完全合法的:
for( int i=0; i<max; ++i )
{
//some code
}
及其while
等价物是:
{
int i=0
while( i<max )
{
//some code
++i;
}
}
答案 3 :(得分:3)
我总是将for(int i=0;i<somevalue;i++)
作为在c和c ++中定义for循环的首选方法。{/ p>
就只能在循环中访问“i”而言,您必须关心您使用的变量名称。如果将“i”声明为循环之外的变量并将其用于其他内容,则在将相同的变量用于循环计数器时会导致问题。
例如:
int i = 10;
i = 10 + PI;
点击for循环并声明i = 0 时,将自动更改
答案 4 :(得分:2)
是的,是的。但对于C,显然你的编译器需要处于C99模式。
答案 5 :(得分:2)
答案 6 :(得分:0)
如果你在循环中使用变量,那么每次在循环
中初始化它时它都会改变int i = 0;
for(int e = 0; e < 10; e++)
{
i = e;
}
现在我的价值每次都会改变