C/C++,C#,JAVA数组

来源:互联网 发布:罗开元淘宝店 编辑:程序博客网 时间:2024/06/16 02:00
java []随便写前后,C#必须写变量左边,C/C++必须写右边






Java


一维数组


2) int[] a=new int[5]; //初始化为默认值,int型为0


3) int[] a={1,2,3,4,5}; //初始化为给定值


4) int[] a=new int[]{1,2,3,4,5}; //同(3) 


▲int[] a=new int[5]{1,2,3,4,5}; //错误,如果提供了数组初始化操作,则不能定义维表达式


int[] a; a={1,2,3,4,5}; //错误,数组常量只能在初始化操作中使用


6) int a[]; a[0]=1; //错误,数组没有初始化


二维数组 1) int[][] a; //声明,没有初始化


2) int[][] a=new int[2][3]; //初始化为默认值,int型为0


3) int[][] a={{1,2},{2,3},{3,4}}; //初始化为给定值 int[][] a={{1,2},{2,3},{3,4,5}}; //没有错,数组空间不是连续分


配的,所以不要求每一维的大小相同


交错数组
4) int[][] a=new int[2][]; a[0]=new int[3]; //a[0]其实就是一个数组 a[1]=new int[4]; //每一维的大小可以不一样;


5) int[][] a=new int[][]{{1,2},{2,3},{3,4,5}}; //同(3)


▲ int[] a=new int[5]{{1,2},{2,3},{3,4,5}}; //错误,如果提供了数组初始化操作,则不能定义维表达式


▲int[][] a=new int[2][]; a[0]={1,2,3,4,5}; //错误,数组常量只能在初始化操作中使用




不管一维还是二维,可以用new默认初始化,也可以用数组常量初始化






C#以上都适用
★交错数组,与二维数组区别的是,每一维长度可以不一样
java的多维数组和交错数组无区别
int[][] c2 = new int[][]   //不可直接={{1,2,3},{4,5,6},{7,8,9}} 必须new,而java可以
{  
    new int[] {1,2,3},  
    new int[] {4,5,6},  
    new int[] {7,8,9}  
};  


二维数组a[0,0],交错数组a[0][0],




C/C++
①在定义数组时分别对数组元素赋初值。
int a[3]={0,1,2};


②只给一部分元素赋值。
int a[3]={0,1};
这表示只给前面两个元素赋初值,后面的元素值默认为0。


③在对全部数组元素赋初值时,可以不指定数组长度。
int a[]={0,1,2};




不可声明int a[];后面再赋值,因为是值类型,且大小是其类型的一部分。不像java,C#使您可以声明一个数组并向它分配 


int 对象的任意数组,而不管数组长度如何。




int a[][2] = { { 1, 2 }, { 2, 3 }, { 3, 4 } }; //必须指定列数
C++如果是new二维数组,需用二维指针,


int **a = new int*[m];
for(int i=0; i < m; i++)
a[i] = new int[n];

0 0