gpt4 book ai didi

c - 运算符优先级和三元运算符

转载 作者:太空宇宙 更新时间:2023-11-04 00:32:09 25 4
gpt4 key购买 nike

我在 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) { ... }

关于c - 运算符优先级和三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10007140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com