每当我在编译器中运行此命令时,我都会得到1。但是,有人告诉我这不应该返回1,并且我的编译器是错误的并且不能被信任。
我的朋友是对的,因为我使用的编译器给了我错误的答案,还是应该返回1?
#include <iostream>
#include <string>
int main()
{
bool lol = "abc" < "abcd";
std::cout << lol;
return 0;
}
答案 0 :(得分:2)
该代码具有未定义的行为,因为它在两个指针(字符串文字"abc"
和字符串文字"abcd"
的地址)上使用了oredering比较运算符数组。因此,它可以做任何事情。