有关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",会出现错误
(好像是死机)。
但是第一个和第二个有什么用呢?
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(开辟了新的空间,但是没有初始化)。
我这么理解。
第一个是你经常用你同学的电脑(指针指向一个已有的空间)。
第二个是你买了一个新电脑,安装好了OS(开辟了新的空间,并初始化了)。
第三个就是买了一个电脑,没有安装OS(开辟了新的空间,但是没有初始化)。
我这么理解。
作者: laohanmao 发布时间: 2011-12-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28