Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么c中条件运算符第二部分的赋值需要括号_C - Fatal编程技术网

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

为什么c中条件运算符第二部分的赋值需要括号,c,C,下面的代码 i>0?j=9:i=7; 正在给出一个错误: 赋值的左操作数需要左值 你能解释一下为什么我会犯这个错误吗? 当,i>0?j=9时:(i=7)工作正常。Imho:基本上,您的问题是C这个术语运算符的优先级高于“=”(在C++中,优先级是相等的,所以它可以按预期工作),这就是您需要括号的原因。那么为什么j周围不需要括号呢?

下面的代码

i>0?j=9:i=7;
正在给出一个错误:

赋值的左操作数需要左值

你能解释一下为什么我会犯这个错误吗?
当,
i>0?j=9时:(i=7)
工作正常。

Imho:基本上,您的问题是C这个术语运算符的优先级高于“=”(在C++中,优先级是相等的,所以它可以按预期工作),这就是您需要括号的原因。

那么为什么j周围不需要括号呢?