开发者社区> 问答> 正文

C++中 不能在类中访问this的地址


class a{
public:
void show(){
cout<<&this;
}
}
如果this是一个指针,为什么不能访问它的地址?

展开
收起
a123456678 2016-03-09 11:41:04 2120 0
1 条回答
写回答
取消 提交回答
  • 首先要搞清楚this指针是存放在哪的?编译器在生成程序时加入了获取对象首地址的相关代码,并把获取的首地址存放在了寄存器ECX中(VC++编译器是放在ECX中,其它编译器有可能不同),也就是成员函数的其它参数正常都是存放在栈中,而this指针参数则是存放在寄存器中。
    寄存器不能像被外设寄存器或存储器一样被访问到,它不在你的寻址范围中,必须使用特定的汇编指令才能访问。

    2019-07-17 18:55:43
    赞同 展开评论 打赏
问答分类:
C++
问答地址:
问答排行榜
最热
最新

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载

相关实验场景

更多