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


Difference of variable initialization in C++

本问题已经有最佳答案,请猛点这里访问。

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

1
int X = 100;

1
int *pX = new int(100);


"Is there any difference between these 2 ways of storing an integer?"

是的,存在显着差异。

1
 int X = 100;

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

1
int *pX = new int(100);

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

对于后者,您应该注意到,当不再需要堆内存时,必须释放它:

1
 delete pX;


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