これは、内部で何が行われるかを理解するための私自身の実験でした。このプログラムはコンパイラにとって何を意味するのでしょうか?
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()
、なぜステートメントを再度記述しなければならないのかを知る必要があります。混乱していたらごめんなさい。