在17頁C程序設計語言(第二版)作家說的!=
讓渡,而不是平等的優先級
的優先比的
=
更高所以當我想測試它時,並不是那樣。這是我的簡單程序:
#include <stdio.h>
int main() {
int inp;
while(inp = getchar() != EOF) {
putchar(inp);
}
}
我試圖讀取輸入並將其顯示給用戶。當我嘗試,沒有發生,屏幕是空的,但是當我嘗試這一個,一切工作正常:
#include <stdio.h>
int main() {
int inp;
while((inp = getchar()) != EOF) {
putchar(inp);
}
}
出了什麼事?我有gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)
。
如果優先級較高,是不是會被解釋爲'inp =(getchar()!= EOF)'? – Blender 2013-05-05 06:56:06
請注意,'='不等於「等於」。它是分配操作員。 '=='是「等於」。 – 2013-05-05 07:02:51