这是我自己的实验,以了解引擎盖下发生了什么,这个程序对编译器意味着什么?
main()
{
int c;
printf("%d\n",c);
printf("%d ", getchar());
while ((c == getchar()) != EOF){
putchar(c);
}
}
当我说 c 必须等于 getchar() (c == getchar()) 时,它不会继续执行 while 循环吗?现在我真的很困惑我自己的代码,c 必须是什么意思!
此外,在这段代码中:
main()
{
int c;
c = getchar()
while ((c = getchar()) != EOF)
putchar(c);
}
如果我们修改int c
to int c = getchar()
,为什么我们不能像这样简单地写:
while (c != EOF)(
putchar(c);
c = getchar();
}
编译器应该从前面的语句中知道c = getchar()
,为什么要重新编写语句?对不起,如果我感到困惑。