当我看到下面的数据operator.In (数据操作符正在使用)时,我正在阅读有关向量的内容。
#include <iostream>
#include <vector>
int main ()
{
std::vector<int> myvector (5);
int* p = myvector.data();
*p = 10;
++p;
*p = 20;
p[2] = 100;
std::cout << "myvector contains:";
for (unsigned i=0; i<myvector.size(); ++i)
std::cout << ' ' << myvector[i];
std::cout << '\n';
return 0;
}输出:
myvector contains: 10 20 0 100 0我的问题是,为什么在0f 100和100处的0向后移动一个位置。作为:
p是等价的myvector[0],它是给定值10的。++p; now p指向myvector[1]给定值2020之后,100应该来了,所以为什么会有0。发布于 2015-07-20 11:18:21
因为你已经变异了p
++p所以这次手术
p[2]已经被一个索引抵消了,所以就好像您已经抵消了。
p[2 + 1]来自原始地址的p
https://stackoverflow.com/questions/31515096
复制相似问题