【发布时间】:2017-08-04 20:20:47
【问题描述】:
#include <stdio.h>
int main()
{
int a=-1?2:5 + 8?4:5;
printf("%d\n",a);
return 0;
}
上面程序的输出是2。但是为什么呢?请解释
【问题讨论】:
-
不要这样写代码,拜托。
-
您可以尝试将代码分解为单个表达式并打印出来
-
你应该解释为什么你不能解释这段代码。
-
为什么你认为它可能不是
2?解释你的推理,然后我们可以帮助你了解你哪里出错了。
标签: c operators ternary-operator operator-precedence conditional-operator