在C++中,int a = 10的内存表现形式取决于你的具体代码和优化级别,主要的几种形式:
  1. 不存在于内存中。比如a从未改变,被编译器当成常量,所有代码中的a直接替换成10;
  2. 存在于寄存器中;比如对a的读写很简单,10可能就直接放在了寄存器eax中。
  3. 放在函数栈(stack)中。比如包含a的函数的栈基指针是0xC0000000,a的地址就可能是0xBFFFFFFC
  4. 也可能在堆(heap)中,比如a是一个类成员变量,而该类的对象new在堆上。
05-08 15:02