我在 C 中遇到了问题。
#include<stdio.h>
int main()
{
int a = 10, b = 0, c = 7;
if (a ? b : c == 0)
printf("1");
else if (c = c || a && b)
printf("2");
return 0;
}
这段代码打印 2 但我认为 a?b:c 返回 b=0 且 0==0 返回 1。你能解释一下代码吗?
条件运算符 (?:
) 具有最低优先级之一。特别是它低于==
。你的说法的意思是:
if(a ? b : (c == 0)) { ... }
不是这个:
if((a ? b : c) == 0) { ... }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)