arr = new int[n];这个语句具体什么意思?请求通俗易懂的讲解一下。

作者&投稿:望纯 (若有异议请与网页底部的电邮联系)
请问,int []arr1 = new int[n]; 和 int *arr2 = new int[n];的区别是什么? 它们都需要 delete []arr吗?~

int[] arr1=new int[n];//这里的arr1是一个"数组指针",这个指针指向的是整个堆创建出来的整个数组地址.
而int *arr2 = new int[n];//这里的arr2是一个普通的指针,这个指针指向的是这个堆创建出来的数组的首地址.
数组指针arr1需要用delete[]arr1来释放内存;而arr2是一个普通的指针,如果是在类中的定义内置变量,那么可以使用普通的delete arr2来释放,在外面还是用delete[]arr2吧..因此一般遇到这种问题 拿不准的情况下,数组用delete[]arr是没什么错的..

就是一个没有长度的数组,定义如下int data[] = new int[0];一般情况下,返回一个null数组不是一个好的选择。当返回数组时,即使数组的长度为零,也会很大的改进你的算法。下面的例子,说明了零长度数组一个应用: 一个空的ArrayList比一个NUll好,程序中不用专门去做NULL的判断,直接拿来循环取值就行,虽然取不到.import java.util.*;public class ZeroDemo2 {public static void main(String args[]) {// set up ArrayList and add strings to itList stringlist = new ArrayList();stringlist.add("string 1");stringlist.add("string 2");stringlist.add("string 3");// convert to String arrayString out[] = (String[])stringlist.toArray(new String[0]);for (int i = 0; i < out.length; i++) {System.out.println(out[i]);}}}ZeroDemo2程序的运行结果:string 1string 2string 3程序创建了一个ArrayList对象,并加入三个字符串。然后程序调用toArray方法。在例子中,toArray方法的参数是"new String[0]"。

创建一个整型的数组,表示这个数组中所有的元素都是int类型
数组给出的长度是n,表示这个数组共有n个元素

在Java语言中,创建数组的一种方式:
int[] arr = new int[n];
表示创建一个长度为n的定长数组
另外还有两种创建数组的方式:
(1)int[] arr = {1,2,3};
( 2 ) int[] arr = new int[] {1,2,3};


余庆县19130296651: arr = new int[n];这个语句具体什么意思?请求通俗易懂的讲解一下. -
慎些益肝: 创建一个整型的数组,表示这个数组中所有的元素都是int类型数组给出的长度是n,表示这个数组共有n个元素

余庆县19130296651: 请问,int []arr1 = new int[n]; 和 int *arr2 = new int[n];的区别是什么? 它们都需要 delete []arr吗? -
慎些益肝: int[] arr1=new int[n];//这里的arr1是一个"数组指针",这个指针指向的是整个堆创建出来的整个数组地址.而int *arr2 = new int[n];//这里的arr2是一个普通的指针,这个指针指向的是这个堆创建出来的数组的首地址.数组指针arr1需要用delete[]arr1来释放内存;而arr2是一个普通的指针,如果是在类中的定义内置变量,那么可以使用普通的delete arr2来释放,在外面还是用delete[]arr2吧..因此一般遇到这种问题 拿不准的情况下,数组用delete[]arr是没什么错的..

余庆县19130296651: int[] arr = new int[10];是什么意思? -
慎些益肝: 这是C#的语法,表示申明一个整形一维数组arr,同时分配10个整数大小的空间,具体大小要看当前系统整形所占字节大小,一般是4个字节,所以4*10=40个字节,C#除了这40个字节之外还会分配额外管理用的空间,因为C#内部所有都是对象.C++的语法是int* arr=new int[10]; 但是在空间分配和内存管理上是不同的.

余庆县19130296651: C++数组问题 -
慎些益肝: 需要动态申请空间.int *age; cin >> n; age = new int[n][n];....操作部分最后结束时记住要: delete []age;不然会内存泄漏

余庆县19130296651: 写一个方法,将一个整形数组中的偶数复制到另一个数组中,用java写. -
慎些益肝: int []arr = new int[n];//n为你要定义的数组长度 int []arr_ = new int[n]; static int j=0; for(int i=0;i<arr.lengh;i++) {if(arr[i]%2==0)arr_[j++]=arr[i]; }

余庆县19130296651: java编程题求过程 -
慎些益肝: public class threeNum {public static void main(String[] args){int a=0;int b=0;int c=0;for(a=1;a<=9;a++){for(b=0;b<=9;b++){for(c=1;c<=9;c++){if((a*49+b*7+c)==(c*81+b*9+a)){System.out.println("这个自然数是"+(a*49+b*7+c));...

余庆县19130296651: Java 数组中最小值为什么会是0 -
慎些益肝: 因为你的初始最小值设置为0 int min=arr[0];此时数组刚初始化 默认值都是0int max=arr[0]; int min=arr[0];这2个应该放到for(int i=0;i<N;i++){arr[i]+=rd.nextInt();} 的下面

余庆县19130296651: java 编写程序,声明一个数组,长度定义为N(此题,N等于10),从数组中找出最大的数和最小的数, -
慎些益肝: int[] arr=new int[]{10,20,3,15,16,31,50,52,19,28,72,99,87,83}; int max=arr[0];//最大数 int min=arr[0];//最小数 for(int i=1;i<arr.length;i++){//循环数组,因为第一个赋值过了,所以从1开始循环if(arr[i]>max)//如果数组的这个值大于'最大值',则赋值给'最大值'max=arr[i];if(arr[i]<min)//同上min=arr[i]; } system.out.println("最大数为:"+max+",最小数为:"+min);

余庆县19130296651: JAVA命令打印出4行的杨辉三角形 -
慎些益肝: public static void main(String[] args) {System.out.println("please input");Scanner sc=new Scanner(System.in);int n=sc.nextInt(); int [][] arr= new int[n][n];int j=0;for(int i=0;ifor(j=0;j arr[i][0]=1; arr[i][i]=1; } } for (int i=2;i for(j=1;j arr[i][j]=arr[i-1][j]+...

余庆县19130296651: 分别采用循环和递归方法输出以下数字塔(java) -
慎些益肝: //输出数字塔 /* * 1 * 121 * 12321 * 1234321* ............. */ public void loopTower(int n)//n为行数, 使用循环 { int[][] arr=new int[n][2*n-1]; for(int i=0;i { int x=i+1; for(int j=n-1;j>=0;j--)//从中间一列开始 { if(x>0) { arr[i][j]=x; arr[i][2*n-j-2]=x; x--; } else break; }...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网