给出一段代码示例,可以自己在 IDE 上尝试试试看。
#include<stdio.h>
#include<string.h>
int main()
{
char ch;
int n = 0;
for(ch = getchar(); ch != '\n'; n++) {
}
printf("%d\n", n);
return 0;
}
for 循环的第一个 ';' 前面的语句是初始化语句,只会执行一次,也就是执行完,发现不是换行符,后面 ch 就永远不是换行符了,这就变成了一个死循环,根本不是在统计 getchar() 的字符数。
D不行原因是for循环结构for( A,B,C)中的ABC的功能没理清: A处是初始条件是只行一次的
B是循环条件或者说是终止条件, C是循环变量的变化