C语言FOR的问题

来源:百度知道 编辑:UC知道 时间:2024/05/21 12:00:36
为什么有的FOR完后要加分号,有的却不要呢?比如:
for(i=0;i<9;i++) 这个没加分号
for(i=0;a[i]!='\0';i++); 这个FOR完后却要加个分号,没加分号程序不能运行。
注:程序如下,是判断字符串的首字符和尾字符是否相同的:
int i;
int f;

for(i=0;str[i]!='\0'; i++);

if(str[i-1]==str[0])f=1;
else f=0;
如果上面的FOR后面没加分号,程序就运行不来,加了分号,就可以显示正确结果.

一般要,但也有例外,因为程序不需要循环体,写成这样你可能会明白点

for(i=0;str[i]!='\0'; i++)
{

//do nothing

}
//因为这个for循环的作用是求出字符串的长度,用i表示
//在for语句已经完成了这样的功能了,就不需要循环体了

if(str[i-1]==str[0])f=1;
else f=0;

不规范的编程风格

这里的for(i=0;str[i]!='\0'; i++); 意思是
for(i=0;str[i]!='\0'; i++)
{
; //空语句
}