1 - string是char的定义
string:
string是C++标准库(STL)中的类型,是一个类,定义在 < string > 头文件中。里面包含了对字符串的各种常用操作,它较 char* 的优势是内容可以动态拓展,以及对字符串操作的方便快捷,用+号进行字符串的连接是最常用的操作。
char*:
char* 是一个指向字符的指针,是一个内置类型。可以指向一个字符,也可以表示字符数组的首地址(首字符的地址)。我们更多的时候是用的它的第二的功能,来表示一个字符串,功能与字符串数组char ch[n]一样,表示字符串时,最后有一个 '\0’结束符作为字符串的结束标志。
2 - 区别
研究区别首先要看一下char、char*、与string分别属于的指针、数组、对象。从这三个类型基本就可以看出区别在哪里。
char *s1; //s1是指向字符串的指针
char s2[1]; //s2是字符类型的一维数组
string s3; //s3是string类的对象
区别:
(1)char*与char[]
1 - char *a
a是一个指向已知字符串的指针,实质是指针。
2 - char arr[]
arr本身是一个字符串数组,arr指向该数组的第一个元素,实质是数组。
3 - char*a 与char arr[]
[1] 赋值区别
char s1[5];
char *s2;
s1 = "abcd"; //error
s2 = "abcd"; //correct
//s1是数组的名字,当成是常量指针,不可以作为左值修改。
//s2是一个指针