大一才学c语言,请问一下为什么D不行呢,getchar这个函数怎么使用

img

一、代码示例尝试

给出一段代码示例,可以自己在 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是循环变量的变化