+ -
当前位置:首页 → 问答吧 → 有关c++中new操作的疑问

有关c++中new操作的疑问

时间:2011-12-17

来源:互联网

(1):
int a=5;
int *p=&a;
(2):
int *p=new int(5);
(3):
struct node
{ string name;
}
node *nodeptr=new node

这几个有什么区别?

个人感觉就是:第三个是用来申请空间存放结构的,如果不申请是不能赋值的,例如:nodeptr->name="andy",会出现错误
(好像是死机)。

但是第一个和第二个有什么用呢?

作者: haolly   发布时间: 2011-12-17

第一个是用指针指向一个变量而以。第二个是用new新建一个对象,并且指针指向它,在退出的时候需要手动delete。该对象存储在heap内。第三个其实和第二个差不多的。

作者: W170532934   发布时间: 2011-12-17

呵呵!
第一个是你经常用你同学的电脑(指针指向一个已有的空间)。
第二个是你买了一个新电脑,安装好了OS(开辟了新的空间,并初始化了)。
第三个就是买了一个电脑,没有安装OS(开辟了新的空间,但是没有初始化)。
我这么理解。

作者: laohanmao   发布时间: 2011-12-17