字符串字面值与标准库string类型不同在哪里?
来源:百度知道 编辑:UC知道 时间:2024/05/26 06:40:21
除了类型不同之外,是不是没有其他的不同了啊
也能吧其中的一种类型初始化为另一种类型,比如:
char *ch1="hello";
string ch2=ch1;
编译器也没报错,请高手解释一下吖~~~~~~~~
ps:书上说的字符串字面值指的是char*吧??
也能吧其中的一种类型初始化为另一种类型,比如:
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只是个指针。