可靠的方法是用标准库的addressof函数,不过过于古老的编译器不支持。
有必要的话可以自己写一个这样的函数如下
template< class T >
T* addressof(T& arg)
{
return reinterpret_cast(
&const_cast(
reinterpret_cast(arg)));
}
如果对象不奇葩的话&运算符就够用了,c++允许重载&运算符,但是一个正常的类不应该真的这么做
设定一个指针p,使p=&a, a为对象。便p的值就是a的地址
printf("&obj=0x%x\n", &obj);
不能用cout。