gpt4 book ai didi

c++ - 三元运算符不产生错误

转载 作者:行者123 更新时间:2023-11-30 00:48:24 28 4
gpt4 key购买 nike

我熟悉三元运算符已有一段时间了,并且使用过几种不同的语言。我对运营商的理解是这样的:

条件?表达式 1 : 表达式 2但是,在 C++ 中,以下代码是合法的:

int i = 45;
(i > 0) ? i-- : 1;

实际上,您不是只写了 1;i - 1;这是一个完整的陈述吗?我知道代码的目的是在 i 大于 0 时递减它,但我认为代码会生成编译器错误,因为它只是一个表达式,而不是一个完整的语句。我期望这样的代码:

int i = 45;
i = (i > 0) ? i - 1 : i;

最佳答案

这称为表达式语句。计算表达式并丢弃其值。

即使这样也是有效的:

42;

虽然它什么都不做。只有表达式中的副作用(如 i--、赋值等)有影响。


其实我们使用的很多语句都是表达式语句:赋值、函数调用等:

a = 42;
foo();

关于c++ - 三元运算符不产生错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31529336/

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