字符串字面值与标准库string类型不同在哪里?

来源:百度知道 编辑:UC知道 时间:2024/05/26 06:40:21
除了类型不同之外,是不是没有其他的不同了啊
也能吧其中的一种类型初始化为另一种类型,比如:
char *ch1="hello";
string ch2=ch1;
编译器也没报错,请高手解释一下吖~~~~~~~~

ps:书上说的字符串字面值指的是char*吧??

赋值运算符之所以可用是因为String类在实现时有这样的一个重载:
string& operator = ( const char* );

至于楼上所说的,
char* ch1 = "hello";这是一个常量。
char ch1[] = .. 这是一个变量。

字符串字面值其实就是指字符串吧。

string是C++标准库的类,重载了=操作符,

string &operator = (char * ch)

另外,char *ch1="hello";最好写成char ch1[] ="hello";

否则ch1只是个指针。