我正在玩增强范围指针,我不明白这种行为:
#include <iostream>
#include <boost/scoped_ptr.hpp>
int main()
{
boost::scoped_ptr<int> p{new int{1}};
std::cout << &p << '\n';
p.reset(new int {2});
std::cout << &p << '\n';
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
0x7fff5fbff650
0x7fff5fbff650
Run Code Online (Sandbox Code Playgroud)
复位功能不应该改变p指向的地址吗?如果使用范围数组而不是范围指针并打印上面代码中第一个元素指向的地址,则会出现这种情况.