gpt4 book ai didi

C++ 运算符顺序评估

转载 作者:行者123 更新时间:2023-12-02 00:51:32 25 4
gpt4 key购买 nike

我有代码,但它给了我一个编译错误。我期望左右运算符顺序评估。 'name += ":"' 的结果是字符串,但看起来它首先评估了 ":"+ "O"。我没有找到任何明确的解释。

#include <string>

int main()
{
std::string name("HELL");
name += ":" + "O";
std::cout << "Hello, " << name << "!\n";
}

最佳答案

表达式name += ":"+ "O"分组name += (":"+ "O")

但这会导致编译错误,因为 ":""0"const char[2] 类型,会衰减为该表达式中的 const char* 指针;并且指针不能求和!

从 C++14 开始,您可以使用用户定义的文字 ""s+ 置于“字符串模式”:

name += ""s + ":" + "O"

分组规则被硬连线到语言语法中,尽管用 operator precedence and associativity 来思考很方便。 .

关于C++ 运算符顺序评估,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59173499/

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