class A { public: int a; // A(int _a) { a = _a; } } A* a1 = new A(10); A* a2 = new A{10} 在new 的对象是一个类的时候就有区别了,用(),如果没有构造函数会直接报错,用{}会直接按列表初始化来处理。如果有构造函数,这两种方式都可以正确的处理,{}也会去调用构造函数。所以C11之...
前者是使a指向一个数组,这个数组的每个元素都是int型,值没有初始化 后者是使a指向一个int型对象,这个对象的值为10
newint[]和newint()的区别1. new int[] 是创建⼀个int型数组,数组⼤⼩是在[]中指定,例如:int * p = new int[10]; //p执⾏⼀个长度为10的int数组。2. new int()是创建⼀个int型数,并且⽤()括号中的数据进⾏初始化,例如:int *p = new int(10); // p指向⼀个值为10的...
int *p=new int;——分配一个int型变量所占大小的空间,并将首地址赋给int *型指针p。int *p=new int[10];——分配一个有10个int型元素的数组所占空间,并将该数组的第一个元素的地址赋给int *型指针p。int *p=new int(10);——分配一个int型变量所占大小的空间,在其中放入十进制数10...
直接上结果 #include<iostream>usingnamespacestd;intmain(){int*A=newint[10];int*B=newint[10]();for(inti=0;i<10;++i){cout<<A[i]<<" ";}cout<<endl;for(inti=0;i<10;++i){cout<<B[i]<<" ";}cout<<endl;return0;} 0 536870912 0 536870912 -957349872 32767 -1114432673 32767 -957...
1. new int[] 是创建一个int型数组,数组大小是在[]中指定,例如:int * p = new int[10]; //p执行一个长度为10的int数组。2. new int()是创建一个int型数,并且用()括号中的数据进行初始化,例如:int *p = new int(10); //
int a [10]; 在堆上分配一个地址,此地址是个指针,没有对应的实际值 new int[10] 在堆上分配10个连续地址,存储值默认为0(因为是int)int [] a = new int[10]; a指针指向实际地址,可以进行操作了。
1、如果只是int a[10]和int* a=new int[10]比较的话,前者可能还更简单一点。只是在使用上int* a=new int[10]需要判断内存是否分配成功,以及在不用时需要使用delete[] a进行内存释放;2、如果不是a[10],而是a[1000000000]或者更大的话,那一般情况下,就只能使用int* a=new这种方式了。这...
int(*int)[10]先找到声明符int型,被括号括着,先看括号内的(优先级高),然后向右看,没有,向左看,是*,说明是个指针,什么指针?在看括号外面的,先向右看,有[] 是个数组,说明a是个志向数组的指针,再向左看,是int,说明数组的每个元素是int。所以,这是一个指向存放int的数组的指针。i...