
那是因为你把EOF( 0xffffffff ) 强制转换成 unsigned char 之后,就变成了 0xff 的一个unsigned类型,后面再和EOF比较的时候,EOF的类型是int,于是就两者都被转换成了unsigned int,那么就相当于比较
这个永远都是true的。
你可以做个实验
-----补充引用-----
引用getchar文档里的一句
其中

那是因为你把EOF( 0xffffffff ) 强制转换成 unsigned char 之后,就变成了 0xff 的一个unsigned类型,后面再和EOF比较的时候,EOF的类型是int,于是就两者都被转换成了unsigned int,那么就相当于比较
这个永远都是true的。
你可以做个实验
-----补充引用-----
引用getchar文档里的一句
其中