C++ 为什么向量';s随机访问迭代器与指针提供相同的内存地址?
请注意,地址每次都是相同的,问题是为什么?您得到的是同一对象的地址C++ 为什么向量';s随机访问迭代器与指针提供相同的内存地址?,c++,pointers,vector,stl,iterator,C++,Pointers,Vector,Stl,Iterator,请注意,地址每次都是相同的,问题是为什么?您得到的是同一对象的地址it,那么您每次都会得到相同的地址。迭代器指向的元素会更改,但迭代器本身的地址(it是一个对象,并且有自己的地址)不会更改 指针变量也是一样的,如果你得到的是指针本身的地址。例如 0x7fff6667cdf0 7 0x7fff6667cdf0 14 0x7fff6667cdf0 15 0x7fff6667cdf0 16 int*p; 大小; 对于(p=v.data(),s=0;s
it
,那么您每次都会得到相同的地址。迭代器指向的元素会更改,但迭代器本身的地址(it
是一个对象,并且有自己的地址)不会更改
指针变量也是一样的,如果你得到的是指针本身的地址。例如
0x7fff6667cdf0 7 0x7fff6667cdf0 14 0x7fff6667cdf0 15 0x7fff6667cdf0 16
int*p;
大小;
对于(p=v.data(),s=0;s 难道我不明白。p是递增的,为什么它是一样的?@ProtoType指针指向的地址会改变,但指针本身的地址(指针是一个对象,有自己的地址)不会改变。哦!好的,是的,指针本身有自己的地址谢谢@songyunanyao
0x7fff6667cdf0 7 0x7fff6667cdf0 14 0x7fff6667cdf0 15 0x7fff6667cdf0 16
int* p;
size_t s;
for (p = v.data(), s = 0; s < v.size(); s++, p++)
{
cout <<&(p)<<" ";
cout<<(*p)<<" ";
}