看到第4章,首次接触到堆(heap)这个概念,不好理解,所以用vs2010反汇编跟踪下程序:
// use_new.cpp -- using the new operator
#include <iostream>
int main()
{
using namespace std;
int nights = 65535;
int * ni = &nights;
int * pt = new int;
// new运算符为程序动态分配内存(程序运行时进行的),类似于C语言中的malloc函数
*pt = 65535;
cout << "int nights value = " << nights // 从堆栈(stack)中取得数据65535
<< ": location = " << &nights << endl;
cout << "int* ni value = " << *ni
// 从堆栈(stack)中取得ni值(地址[ni]),依照此(地址)在堆栈(stack)从寻找*ni中的数据65535
<< ": location = " << ni << endl;
cout << "int* pt value = " << *pt
// 从堆栈(stack)中取得pt值(地址[pt]),依照此(地址)在堆(heap