C++ c++;字符串比较运算符>;根据两个字符串的比较方式生成不同的输出

C++ c++;字符串比较运算符>;根据两个字符串的比较方式生成不同的输出,c++,C++,下面的代码产生不同的结果: 初始化字符串变量并将其赋值以进行比较 字符串d=“d”; 字符串abc=“abc” d>abc的计算结果为真 比较字符串。 “d”>“abc”的计算结果为false 它们如何产生不同的输出?“d”不是std::string。它是一个常量字符*。同样地,当您执行string d=“d”时,您将字符串设置为{'d','\0'}的常量字符*。然后,当您比较它时,使用std::string操作符>而不是const char*“d”实际上是一个const char[2],不过如

下面的代码产生不同的结果:

  • 初始化字符串变量并将其赋值以进行比较 字符串d=“d”; 字符串abc=“abc”

    d>abc的计算结果为真

  • 比较字符串。 “d”>“abc”的计算结果为false 它们如何产生不同的输出?

    “d”
    不是
    std::string
    。它是一个
    常量字符*
    。同样地,当您执行
    string d=“d”
    时,您将字符串设置为
    {'d','\0'}
    常量字符*
    。然后,当您比较它时,使用
    std::string操作符>
    而不是
    const char*

    “d”
    实际上是一个
    const char[2]
    ,不过如果用作
    的操作数,它会在当时转换为
    const char*