【发布时间】:2023-03-07 05:59:01
【问题描述】:
我在 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。您能解释一下代码吗?
【问题讨论】:
-
为什么不直接查一下运算符优先级表呢?否则这类问题是没有用的。
-
如果您知道这是关于优先级的,为什么不使用precedence order 来确定括号的放置位置?
标签: c operator-precedence ternary