gpt4 book ai didi

c - 两个不同事物之间比较的语法

转载 作者:行者123 更新时间:2023-12-04 11:09:14 27 4
gpt4 key购买 nike

下面的程序报错

#include<stdio.h>
int main ()
{
int a=10,b;
a>=5?b=100:b=200;
printf("\n%d",b);
}

错误是

ka1.c: In function ‘main’:
ka1.c:5: error: lvalue required as left operand of assignment

现在如果我替换行

a>=5?b=100:b=200;

通过

a>=5?b=100:(b=200);

然后编译就没有错误了。所以我想知道有什么问题

a>=5?b=100:b=200;

最佳答案

三元运算符 (?:) 有 higher precedence比赋值运算符 (=)。所以你原来的陈述被解释为:

((a >= 5) ? (b = 100) : b) = 200;

改为这样写:

b = (a >= 5) ? 100 : 200;

这是惯用的 C。(条件周围的括号并不是真正必要的,但它们有助于提高可读性。)

关于c - 两个不同事物之间比较的语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6414819/

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