我已经看到以下列方式使用字符串数组的代码。
string *pointer = new string[runtimeAmmount];
我还看到了按如下方式访问的字符串中的各个字符。
string aString = "this";
char bString[] = "that";
bString[3] = aString[3];
以上将导致 bString 等于“thas”。这表明字符串实际上是指向第一个字符位置的指针。然而,字符串仍然具有作为“string.c_str()”访问的成员函数,这意味着它本身作为对象不遵循指针的规则。这一切如何运作?
注意:我最初的问题是不同的,但我想把它打出来。如果有人仍然可以回答我最初的问题只是为了验证,我将不胜感激。我最初的问题如下:如果每个字符串在其整个生命周期中的长度都可以变化,那么字符串数组如何是新的?字符串不会相互碰撞吗?
我想出的答案是:字符串以某种方式包含指向 C 样式数组的指针,因此对象占用了一定数量的空间。
或者
字符串是 STL 模板中的一种,我还没有真正花时间去研究它。