程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c++-C++中 不能在類中訪問this的地址

c++-C++中 不能在類中訪問this的地址

編輯:編程解疑
C++中 不能在類中訪問this的地址


class a{
public:
void show(){
cout<<&this;
}
}
如果this是一個指針,為什麼不能訪問它的地址?

最佳回答:


首先要搞清楚this指針是存放在哪的?編譯器在生成程序時加入了獲取對象首地址的相關代碼,並把獲取的首地址存放在了寄存器ECX中(VC++編譯器是放在ECX中,其它編譯器有可能不同),也就是成員函數的其它參數正常都是存放在棧中,而this指針參數則是存放在寄存器中。
寄存器不能像被外設寄存器或存儲器一樣被訪問到,它不在你的尋址范圍中,必須使用特定的匯編指令才能訪問。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved