为了账号安全,请及时绑定邮箱和手机立即绑定

请问int* p=new int[]与int* p=new int() 有什么区别 ?

请问int* p=new int[]与int* p=new int() 有什么区别 ?

C++
慕粉13121218550 2016-07-19 19:50:19
查看完整描述

1 回答

?
onemoo

TA贡献883条经验 获得超454个赞

int *p = new int();

这语句是分配一段内存,在其中以值初始化一个int类型对象,返回其指针给定义的p。 p所指的int的初值为0。


int *p = new int[];

这个语句不合语法!编译器会报错。

用new一次分配数个对象的写法是:类型后的中括号中必须写上你要分配的个数,这个数必须是一个整型常量,且不能为负。   你这样在括号中留空的写法是错的。

如果这样写: int *p = new int[5];

这语句的意思是:分配一段内存,像数组一样连续存放5个int对象,这些int是默认初始化的。对int类型来说,其初值是不确定的。返回第一个int的指针给p。

查看完整回答
反对 回复 2016-07-19
  • 1 回答
  • 0 关注
  • 3137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信