我的编译器不正确吗?

时间:2018-07-15 19:45:42

标签: c++ string math return

每当我在编译器中运行此命令时,我都会得到1。但是,有人告诉我这不应该返回1,并且我的编译器是错误的并且不能被信任。

我的朋友是对的,因为我使用的编译器给了我错误的答案,还是应该返回1?

#include <iostream>
#include <string>

int main()
{
    bool lol = "abc" < "abcd";
    std::cout << lol;
    return 0;
}

1 个答案:

答案 0 :(得分:2)

该代码具有未定义的行为,因为它在两个指针(字符串文字"abc"和字符串文字"abcd"的地址)上使用了oredering比较运算符数组。因此,它可以做任何事情。