在这个小测试程序,可以有人给我解释一下:指针类的数据成员
- 为什么每个地址印在两个循环一样吗?
为什么它不同于一个循环到另一个循环?
struct A { A(){ std::cout << &v << "\n"; }; int v; }; int main() { std::vector<A> vec; int i = 10; while (i--) vec.push_back(A()); for (A b : vec) std::cout << &(b.v) << "\n"; while (true); return 0; }
事实上,我期望看到10个不同的地址重复2次
因为'b'是矢量元素的*拷贝*,而不是矢量元素本身。 –
尝试'(A&b:vec)'查看'vector'中的地址。 –
非常感谢,我感到非常愚蠢。 – Treycos