后者是使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。
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型,被括号括着,先看括号内的(优先级高),然后向右看,没有,向左看,是*,说明是个指针,什么指针?在看括号外面的,先向右看,有[] 是个数组,说明a是个志向数组的指针,再向左看,是int,说明数组的每个元素是int。所以,这是一个指向存放int的数组的指针。i...
比如int a[]={10,9};int a[] = new int[]{10,9};前者系统会栈分配空间系统会自动实现内存分配和回收 后者系统会堆分配空间系统般会自动实现内存回收程序没有delete能会造成内存泄露 后者比前者灵活,动态分配内存会根据程序需要分配需要多少,自己决定分配多少浪费空间少 ...
int a :定义一个整形变量,只有在为a赋值时,系统才会a在内存中分配相应空间 int a =new int :定义一个整形变量a的同时,系统为a在内存中分配相应空间 如果ok。给分和好评 谢谢