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
。
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 whereasargv[1]
is a pointer to achar
value
那是你那种错误的朋友。
argv[1]
在这种情况下就像你说的 char*
。
"-d"
是一个 const char[3]
(-d
加上空终止符),这个数组可以衰减为一个指针,这意味着 ==
可以编译。
正如评论中指出的那样,这可能不会达到您期望的效果。这将进行指针比较而不是实际字符串的比较。为此,您需要使用 strcmp
。