C++ char*比较如何工作?

Moe*_*oeb 3 c++

#include <iostream>

int main() {
    if ("zabc" < "def") {
        std::cout << "Less.\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码打印出来Less..我知道这不是char*在C++中比较s 的正确方法,但上面的代码是如何打印的Less.

Pet*_*ker 9

代码比较两个字符串的地址.形式上,这是未指定的行为,因为它们不是同一个数组的元素,但在这种情况下,它可能说实话:第一个字符串的地址低于第二个字符串.但你不能指望......


Ed *_*eal 7

你只是比较地址.你需要使用strcmp