爲什麼我收到error: lvalue required as left operand of assignment
爲什麼我需要左值作爲賦值的左操作數?
這裏是C代碼:
#include <stdio.h>
int main(){
int b, i = 10, d;
i>10?b=15:d=1;
return 0;
}
這樣
i>10?b=15:d=1; ^
我使用gcc version 5.4.0 (GCC)
爲什麼我收到error: lvalue required as left operand of assignment
爲什麼我需要左值作爲賦值的左操作數?
這裏是C代碼:
#include <stdio.h>
int main(){
int b, i = 10, d;
i>10?b=15:d=1;
return 0;
}
這樣
i>10?b=15:d=1; ^
我使用gcc version 5.4.0 (GCC)
你試圖分配1到(i>10?b=15:d)
。這將工作在C + +,但不是在C.
那麼爲什麼它沒有指出'b = 15' – user123456987
@ user123456987:因爲你可以' '(i> 10?b)= 15' - 三元運算符是'? :'。 IOW,「b = 15」的左側甚至不是一個表達式。 – MSalters
嘗試'I> 10?(B = 15):(D = 1);' – BLUEPIXY
@BLUEPIXY我不尋找解決方案,我正在尋找理由「爲什麼它在'b = 15'「中不是指向?它正在像這樣工作:'i> 10?b = 15:(d = 1);' – user123456987
它被解釋爲'(i> 10?b = 15:d)= 1;' – BLUEPIXY