c - 为什么c中条件运算符第二部分的赋值需要括号

标签 c

下面的代码

i>0?j=9:i=7;

出现错误:

lvalue required as left operand of assignment

您能解释一下为什么我会收到此错误吗? 当,i>0?j=9:(i=7);工作正常

最佳答案

恕我直言:基本上你的问题是 C 术语运算符的优先级高于“=”(在 C++ 中优先级相等,因此它按预期工作),这就是你需要括号的原因。

关于c - 为什么c中条件运算符第二部分的赋值需要括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31036124/

相关文章:

可以在 Linux 的用户空间中实现 native 代码的抢占式多任务处理吗?

c - c中uint8_t的字符串赋值

C:为什么这段代码中 "Enter"键触发输出?

在 GNU 汇编中使用重复 block 或宏调用函数表

c - 这个基本的 shell 程序有什么问题?前几个命令运行良好,但结果总是以段错误结束

c - 尚未定义类型的数组(不完整元素类型)

c - 用户输入文件

c - C 语言的 GD 验证码生成器

python - 从C向Python程序发送字符串

c - 在结构中存储字符串