C++ 是否将 char 指针视为 c 样式字符串?

Does C++ treat char pointers as c style strings?

C++ 是否将 char 指针视为 C 风格的字符串?

int main(int argc,char* argv[])
{
    if (argv[1] == "-d")
    {

    }
}

argv[1] 包含一个 char 指针,语句 argv[1] == "-d" 如何不导致编译器抛出错误,因为 "d" 是一个字符串,而 argv[1] 是一个指针一个字符值

because "d" is a string whereas argv[1] is a pointer to a char value

那是你那种错误的朋友。

argv[1] 在这种情况下就像你说的 char*

"-d" 是一个 const char[3]-d 加上空终止符),这个数组可以衰减为一个指针,这意味着 == 可以编译。

正如评论中指出的那样,这可能不会达到您期望的效果。这将进行指针比较而不是实际字符串的比较。为此,您需要使用 strcmp