C ++中变量初始化的区别

时间:2015-03-24 06:03:54

标签: c++

这两种存储整数的方法有什么区别吗?

int X = 100;

int *pX = new int(100);

2 个答案:

答案 0 :(得分:3)

  

"这两种存储整数的方式有什么不同吗?"

是的,存在显着差异。

 int X = 100;

使用值X初始化堆栈上的变量100,而

int *pX = new int(100);

为堆上的int分配内存,保存在指针pX中,并将值初始化为100

对于后者,您应该注意到,当不再需要堆内存时,必须解除分配内存:

 delete pX;

答案 1 :(得分:2)

第一个是在堆栈上创建一个变量,而第二个是在堆上创建一个变量并创建一个指向它的指针。