gpt4 book ai didi

|| 的 C++ 排序and && 在 if 语句中测试相等性时

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

这是一个非常简单的问题,我找不到答案。

我正在尝试编写一个函数,当传递两个左边优先级更高的字符时返回一个 bool 值。

我可以通过以下方式实现所需的功能:

bool Precedence(char lhs, char rhs) {
if ((lhs == '*' || lhs == '/') && (rhs == '+' || rhs == '-'))
return true;
return false;
}

这很好,但为什么下面的不完全一样:

bool Precedence(char lhs, char rhs) {
if ((lhs == ('*' || '/')) && (rhs == ('+' || '-')))
return true;
return false;
}

我知道这是错误的,但为什么呢?对我来说,他们都读得一样。抱歉,我知道这很愚蠢,但这让我发疯。

最佳答案

C++ 没有定义这样的逻辑运算符。

lhs == ('*' || '/') 并不意味着 lhs 等于 * 或/,它返回 true 如果lhs1

('*' || '/') 子表达式无条件求值为 true,因为 char 上的 bool 逻辑类似于检查它们是否为 0。现在您的表达式看起来像 lhs == truelhs == 1

关于|| 的 C++ 排序and && 在 if 语句中测试相等性时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31269809/

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