C++中如何获取一个对象的地址?

2024-11-30 13:06:03
推荐回答(3个)
回答1:

可靠的方法是用标准库的addressof函数,不过过于古老的编译器不支持。

有必要的话可以自己写一个这样的函数如下

template< class T >
T* addressof(T& arg) 
{
    return reinterpret_cast(
               &const_cast(
                  reinterpret_cast(arg)));
}

如果对象不奇葩的话&运算符就够用了,c++允许重载&运算符,但是一个正常的类不应该真的这么做

回答2:

设定一个指针p,使p=&a, a为对象。便p的值就是a的地址

回答3:

printf("&obj=0x%x\n", &obj);
不能用cout。