C++中的比较

kay*_*kay 4 c++ comparison const char

在比较两个方面,这是C++中的有效代码吗? const char *

const char * t1="test1";
const char * t2="test2";

t2 = "test1";
if ( t1 == t2 ) {

cout << "t1=t2=" << t1 << endl;

}   
Run Code Online (Sandbox Code Playgroud)

没用strcmp

ice*_*ime 6

不,您正在比较指针值(即:地址),而不是它们的内容.该代码无效,它可能不会达到预期效果.

在C++中,你应该避免const char *并选择std::string:

#include <string>

std::string t1("test1");
std::string t2("test2");
if (t1 == t2) {
    /* ... */
}
Run Code Online (Sandbox Code Playgroud)

  • OP的注意事项:这是有效的,因为`std :: string`重载了`==`运算符,因此可以通过逐个字符的词法比较来执行正确的字符串比较.`char*`指针不是这样. (4认同)
  • @kay:是的,因为两个指针都指向字符串文字,很可能编译器重复使用相同的两次 (3认同)