我在GNU编译器上测试了一个简单的getchar()函数,但为什么不能获得预期的输出
for
代码如下:
mto@ubuntu:~/c$ ./a.out
agc
mto@ubuntu:~/c$
答案 0 :(得分:2)
while ((ch =getchar() != '\n') && x<MAX)
应该是
while (((ch = getchar()) != '\n') && x<MAX)
注意作业周围的额外( .. )
。由于运算符优先级,ch =getchar() != '\n'
等效并评估为ch = (getchar() != '\n')
。 !=
的优先级高于=
(赋值)。