后者是使a指向一个int型对象,这个对象的值为10
int[] a=new int[10];语法错误;你可以这样理解 定义一个变量a 类型是int[](整型数组)数组是引用类型,所以new 一个int[10](把数组程度定义为10)如果那你那样,直接int a[]={0,0,0,0,0,0,0,0,0,0,};简单粗暴
说白了就是挖了十个坑,这里坑 里只能放纯正整数,比如说我 int [] b= new int[3];就是3个坑 ,第一个坑我可以这样定义 b[0]=5;(数组是从0开始,不是从1开始)第二个b[1]=8;第三个b[2]=333;如果这时我需要一个5的数据我就可以直接用b[0]了,这个叫变量。不要采纳,不要采纳...
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 a [10]; 在堆上分配一个地址,此地址是个指针,没有对应的实际值 new int[10] 在堆上分配10个连续地址,存储值默认为0(因为是int)int [] a = new int[10]; a指针指向实际地址,可以进行操作了。
区别太大了!int (*a)[10];——声明a是个指向具有10个int型元素的一维数组的指针。int *a=new int[10];——等号左边是声明一个int *型指针a,等号右边是动态申请10个int型数据的连续空间;=号是将成功申请的空间的第一个元素的地址赋给int *型指针a。
a是一个指针,指向存放整形数值10的一个内存单元,即a是10的存放地址;而&a则表示存放指针本身的内存单元的首地址,与上面是不同的。
int [10],是在堆中,a中记录的是指向堆中的地址值 int [ ] a= new int [ 6] ;在堆中开辟一个int类型的数组,长度为6,a在堆栈中记录地址值,a=new int[10] ; 再开辟一个int类型的数组,长度为10,a在堆栈中记录地址值被改变指向这个值 new int [ 6] 如果没有被使用,等待被gc清除 ...
int (*int)[10]; int型指针,指向一个数组。此数组有10个int型元素 int(*int)[10]先找到声明符int型,被括号括着,先看括号内的(优先级高),然后向右看,没有,向左看,是*,说明是个指针,什么指针?在看括号外面的,先向右看,有[] 是个数组,说明a是个志向数组的指针,再向左看,是...
new int[10]实际上是int[0]~int[9] int[10]不存在数组下标越界报错 数组