c语言中的EOF的详细情况?

c语言中的EOF的详细情况?

那是因为你把EOF( 0xffffffff ) 强制转换成 unsigned char 之后,就变成了 0xff 的一个unsigned类型,后面再和EOF比较的时候,EOF的类型是int,于是就两者都被转换成了unsigned int,那么就相当于比较

这个永远都是true的。

你可以做个实验

-----补充引用-----

引用getchar文档里的一句

其中