我的代码是:
#include<stdio.h>
int main() {
int a=10, b;
a >= 5 ? b=100 : b=200;
printf("%d %d", a, b);
return 0;
}
这里在条件运算符行中出现了“需要左值”。
你能解释一下为什么吗?
顺便说一下,同样的程序在 C++ 中运行得很好。
最佳答案
编写该作业的惯用方式是:
b = (a >= 5) ? 100 : 200;
如果您坚持按自己的方式行事,请添加括号:
(a >= 5) ? (b=100) : (b=200);
有关为什么这在 C++ 中有效但在 C 中无效的详细信息,请参阅 Conditional operator differences between C and C++ (感谢@Grijesh Chauhan!)
关于c++ - C 中的左值必需错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15190094/