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

慕粉13121218550
浏览 3138回答 1
1回答

onemoo

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。
打开App,查看更多内容
随时随地看视频慕课网APP