1. 程式人生 > >C++中,int a = 10的後面的操作

C++中,int a = 10的後面的操作

內存 函數棧 div 類成員變量 stack ack new 函數 寄存器

在C++中,int a = 10的內存表現形式取決於你的具體代碼和優化級別,主要的幾種形式:
  1. 不存在於內存中。比如a從未改變,被編譯器當成常量,所有代碼中的a直接替換成10;
  2. 存在於寄存器中;比如對a的讀寫很簡單,10可能就直接放在了寄存器eax中。
  3. 放在函數棧(stack)中。比如包含a的函數的棧基指針是0xC0000000,a的地址就可能是0xBFFFFFFC
  4. 也可能在堆(heap)中,比如a是一個類成員變量,而該類的對象new在堆上。




C++中,int a = 10的後面的操作