for语句有两种用法,一种是跟单个语句,一种是跟代码体。
在跟单个语句时,由于在C语言语句默认是以分号结尾的,程序会将for (;;)之后直到第一个分号的代码视为循环体来执行,例如下面三种情况:
for (int i=0; i<10; i++) foo1();上面三种写法,都是调用foo1()函数10次。在下面一种情况里,程序只会将foo1()函数循环调用10次,而不会将foo2()列入循环中,因为分号for语句在foo2()之前就已经结束了:
for (int i=0; i<10; i++) foo1(); foo2();特别要提的是下面的两种写法,这两种写法的for语句的循环体都为空,程序都不会将foo2()列入循环,因此foo2()只会执行一次。这也是初学者常见的书写错误。
除了跟单个语句外,for语句还可以跟 { } 圈起来的代码体,如下面的例子:
在这种情况下,for语句可以不以分号结尾,程序会将代码体内的所有语句循环10次。