当你使用array [i]访问数组的元素时,我认为C++会在内存中取出数组的起始位置并添加i * sizeof(一个数组元素),然后解除引用该地址(或者做一些等同于我刚刚描述的)。然而,在我看来,如果你有一个字符串数组(std :: string),每个元素可以根据字符串中字符的数量而有不同的大小,所以一定还有别的东西在发生。根据我的理解,数组元素存储在连续的内存中。如果你将字符串存储在连续的内存中,然后将更多的字符添加到其中的一个字符中,则所有后续字符串都必须移动。如何在C++中创建一个字符串数组?
有人可以向我解释这是如何工作的?
发表一些*工作代码示例*。 “字符数组”和“数组std :: string”和“数组[指针]字符”等有区别。 – 2011-05-30 22:59:35
当我说字符串时,我的意思是std :: string,而不是char *。 – user724107 2011-05-30 23:01:22
@pst:没有看过之前使用过的短语“stdstr”。有趣。 – 2011-05-30 23:01:25