c++中,string类型的变量是做指针类型来处理的么

2024-11-28 18:56:59
推荐回答(3个)
回答1:

不完全一样,string类重载了很多运算符,使得他的行为和字符串很相似,但是两者并不是一个类型。string s1;char*s2 =new...;前者是string对象,后者是char指针。简单举两个例子:
strcpy (s1,s2);//错,strcpy函数只能接受char */const char *的参数,string类并没有设置从string到char *的转换函数( operator char* ()),当然,你可以使用c_str函数来读取string中的字符串,不过这种行为并不是真正意义上的类型转化
string s3=s1+s2;//允许,string+char*本身并没有进行符号重载,但是char*会被隐式转化为string,这要归功于string (char*)的构造函数。

回答2:

C++中,string是个字符串类,“string类型的变量”的实质就这个类的对象。原则上它与一般的类型变量相似,但有自己丰富的操作功能;应该说与结构体之类更像一些。

回答3:

他其实用的是 模板类 和 链表来实现的,然后用很多的typedef 来一直 重新定义类型,然后把你搞晕,其实就是一个可以存放char类型的链表而已 所以 肯定会有指针的操作的!!
因为链表 的链接需要的就是指针