string
string本质还是char数组,被开发人员封装成了string类型
string不能直接将字符串相加
string类型变量在定义时,不能拼接;
//错误示例
std::string name = "hello," + "world";
string变量可以在定义后拼接
//可以运行
std::string name = "world";
name = "hello," + name;
//可以运行
std::string data = name + name;
有读者知道为什么吗?希望能帮我解惑,万分感谢
string作为参数传递
string类型做参数,仅是值传递
//示例,无法改变原string变量值
void PrintString(std::string string) {
string = "hello, " + string;
std::cout << string << std::endl;
}
要想是地址传递,可以用&
void PrintString(std::string& string) {
string = "hello, " + string;
std::cout << string << std::endl;
}
char* 指针
可以用char*指针指向字符串,但无法通过指针的下标访问修改字符串,因为此时字符串是放在只读区域的,可以用const修饰提示自己,这是常量无法修改。
字符串数组
数组内存放的时字符串地址,并不是本身