字符串的动态长度(C++)
Dynamic length of strings in C++
我已经用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";
看看字符串和数组的定义对你有好处。
希望对您有所帮助。
相关文章:
- std::向量与传递值的动态数组
- 在c++中用vector填充一个简单的动态数组
- C++中的动态铸造故障
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 内联映射初始化的动态atexit析构函数崩溃
- 使用动态分配的数组会导致代码分析发出虚假的C6386缓冲区溢出警告
- 控制允许动态运行c++的并发操作数
- 如何将这个C++哈希表转换为动态扩展和收缩,而不是使用硬设置的最大值
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 输出没有重复元素的动态数组(收缩数组)C++
- C++为线程工作动态地分割例程
- 正在插入动态数组
- 在c++中使用动态分配的问题
- C++中的动态对象与非动态对象
- 如何在动态数组上使用搜索函数
- 视觉studo 2019中的漫画和静态/动态绑定
- 从C++中的数字输入动态创建矩阵
- 如何从QToolBox中动态创建的QLineEdit中获取文本
- C++ 动态数组每次添加时将大小增加 1 - 错误
- 在以唯一ptr为值的C++映射中,动态内存何时会被销毁