字符串的动态长度(C++)

Dynamic length of strings in C++

本文关键字:C++ 动态 字符串      更新时间:2023-10-16

我已经用C++调试了一些程序,我注意到例如:

char str[] = "It's a test";

但是当您<string>标头中使用字符串时,它似乎具有可变长度,例如,允许以下内容:

string str1 = "abcdefg";
str1 = "abc";

但这是不允许的:

char str[] = "It's a test";
str = "abc";

行不通!这背后的实施是什么?

您可以初始化数组,这是用

char array[] = "some string literal";

但不能分配给数组。这只是语言的规则。

std::string类对赋值运算符有一个特殊的重载,允许将其赋值到。

你认为一开始你已经初始化了字符数组,而当你使用它时,它不需要再次初始化! 但它不是真的...每次声明和初始化任何数组以及再次使用它时,都必须再次执行此操作!例如:

char user[] = "sci3nt15t";
char user[] = "Ender";

看看字符串和数组的定义对你有好处。

希望对您有所帮助。