我是C编程的新手。我写了一个程序,当通过键盘输入'a'时,我得到输出0 1
。根据我对for
循环的了解,如果条件变为false
,它不应该执行正文的语句。因此,输入“a”时输出应为0
。
#include<stdio.h>
main()
{ int c;
long nc=0;
for(nc=0;c=getchar()!=EOF;++nc)
{
printf("%ld \n",nc);
}
}
答案 0 :(得分:3)
您输入了a
然后<return>
,因此有2个字符可用于输入,0
是为第一个而写的1
。一切都正确。
- OP要求的解释 -
从nc
开始等于0,第一次调用getchar()
读取a
,nc
等于0,然后打印0
,{{1} }递增所以现在等于1;然后第二次调用nc
读取getchar()
,newline
等于1,然后打印nc
,1
递增,现在等于2。