C语言for( ; ; )这个语句怎么理解?

main函数里面,没有while(1),就只有这个for( ; ; )
void main()
{
BI_CLK =0;
BI_SDI =0;
for(;;)
{
wrbyte(0x5555);
delay(1000);
BI_OE =0;
delay(1000);
BI_OE =1;
}
}

是不是就是可以取代while(1),这句话应该怎么样理解啊?

for语句的一般形式为:
for(表达式1;表达式2;表达式3)
语句
3个表达式的主要作用是:
表达式1:设置初始条件,只执行一次。可以为零个、一个或多个变量设置初值。
表达式2:是循环条件表达式,用来判断是否继续循环。在每次执行循环体前先执行此表达式,决定是否继续执行循环。
表达式3:作为循环的调整,例如使循环变量增值,它是在执行完循环体后才进行的。
所以for语句可以这样理解
for(循环变量赋初值;循环条件;循环变量增值)
语句
举个例子来说
for(i=1;1<=100;i++)
sum=sum+i;
接下来来说for(;;)这个语句,第一个分号前为空,即没有赋初始值,为了能正常执行循环,应要在for语句之前给循环变量赋初始值。第二个分号前为空,即不设置任何表达式作为循环条件,那此时循环无终止的进行下去。第二个分号后为空,即执行for语句时会一直执行下去,永无终止。其实for(;;)语句即是不设初值,不判断条件,循环变量不增值,无止尽的执行循环体语句。不过,显然这个是没有实用价值的。
while(1)与for(;;)等价。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-08
for(表达式1;表达式2;表达式3)
{循环体}
这三个表达式,可以都有,也可以都没有,也可以由任意的一项或两项,这就是for的灵活性所在
解释一下三个表达式的含义
表达式1,这个一般是初始化条件,如i=1。在第一个分号之前,可以用一个,也可以好几个,用逗号隔开
表达式2,这个事循环条件,满足就继续执行循环体,不满足就跳出循环。这里一般是个逻辑判断语句。
表达式3,这个一般是改变循环条件的地方,如i++。
执行顺序是,先初始化,也就是运算表达式1,初始化完成后,这个表达式就没有用处了。
接着判断是否满足循环条件,也就是运算表达式2,如果是真,就执行循环体。
最后,运算表达式3,改变循环条件。这样第一次循环完成。
接着第二次循环,也就是运算表达式2,看是否满足循环条件,如果表达式2还满足(也就是真),接着执行循环体。完成后运算表达式3,。
如此往复循环,直到不满足表达式2后,跳出循环

说白了就相当于没有循环条件,既然没有循环条件就是一直满足,所以是无限循环本回答被网友采纳
第2个回答  2012-08-08
这个是死循环,最好写成while(1){}
你把for(;;)换成while(1)就可以了,意思就是不停执行for后面{}里面的代码,代码的具体意思吗,不太了解。除非你提供函数原代码
第3个回答  2012-08-08
这个其实就是个无限循环,跟while(1){}一样的效果,一般会在循环内部采用break,goto,以及return来结束循环。
望采纳
第4个回答  2012-08-08
FOR(判断条件1;判断条件2;执行语句)
相似回答