gpt4 book ai didi

c - 条件运算符出现意外错误

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

下面的代码编译得很好

int a=5,b=4,c;
a>b?30:40;

还有,

int a=5,b=4,c;
a>b?c=30:40;

但为什么这不起作用?

int a=5,b=4,c;
a>b?c=30:c=40;

最佳答案

你被优先顺序咬伤了。 ?: 的优先级很低,但没有 =, 低(参见 operator precedence table )。

您的代码被解析为:

(a>b ? c=30 : c) = 40;

而不是:

a>b ? c=30 : (c=40);

您不需要在 c=30 周围加上括号,因为 ?: 就像括号内的表达式一样。


信不信由你,(a>b ? c=30 : c) = 40 是有效的 C++(但不是有效的 C)。表达式 (a>b ? c=30 : c) 是一个 lvalue引用变量 c40 被分配给它。

关于c - 条件运算符出现意外错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8222050/

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