EmZ*_*ark 3 c compiler-errors ternary-operator conditional-operator
我是C的新手,在编译简单代码时遇到以下问题:
#include <stdio.h>
int main()
{
int i, a, b;
i = 3;
a = b = 0;
printf("Before: ");
printf("%d %d\n", a, b);
i == 3 ? a = 4 : a = 10; /* Line 9 */
printf("After: ");
printf("%d %d\n", a, b);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
给我错误:
#gcc some.c
In function ‘main’:
some.c:9: error: lvalue required as left operand of assignment
Run Code Online (Sandbox Code Playgroud)
我不明白.我究竟做错了什么?
这个运营商
i==3 ? a=4 : a = 10;
Run Code Online (Sandbox Code Playgroud)
相当于
( i==3 ? a=4 : a ) = 10;
Run Code Online (Sandbox Code Playgroud)
请改用
i==3 ? a=4 : ( a = 10 );
Run Code Online (Sandbox Code Playgroud)