本文目录一览

1,JAVA数组初始化

string[] str = new string[]{1,2,3} 或 string[] str = {1,2,3} 二维数组初始化 int[][] a={{1,2,3},{2,3,4},{1,0}}
String name[]={"s1","s2","s3"};

JAVA数组初始化

2,数组初始化

使用memset函数例如:#include<iostream>using namespace std;int a[1000][1000];int main() memset(a,0,sizeof(a)); for(int i=0;i<1000;i++) for(int j=0;j<1000;j++) cout<<a[i][j]<<endl; } system("pause");} 这样就行了,但只能赋值为0和-1;

数组初始化

3,如何对数组进行初始化

效率的方法是memset(matrix, 0, sizeof(matrix))。但要理解其背后的含义,他的含义是将matrix所占的内存区域都赋值成0。其内存区域赋值的单位是字节。也就是说对于int型数组matrix,每个元素int占四个字节,这四个字节都会被赋值为0。根据int的表示方法,最后这个数值也是0。碰巧的是对于double,float等当所有字节都为0时,最终的数值也都是0。所以对于这类数值型数组,如果清零的话可以这么写。但赋值成其它数字就没有这么幸运了,如果用memset(matrix, 1, sizeof(matrix)),并不是把所有元素都赋值成1。而是内存中内容为0x010101,如果是int型那对应的是65793。如果是float型那就是某个其它数字。另外一个可以记住的常用的是memset(matrix, -1, sizeof(matrix)),对于int型这个对应的正好也是-1.如果要赋值其它数字,只能用循环的方法自己赋值一遍。或者声明用stl的构造函数。对于字符串,使用memset也不是好的方法,字符串最好使用stl中的string,使用stl的初始化方法。
void *memset(void *s, int c, size_t n);以char型为例:char str[10];memset(str, 0x00, sizeof(char) * 10);含义:初始化char型数组str,数值是0,数组的大小是10个char型大小的空间。
for(int i=0;i for(int j=0;j matrix[i][j]=0; //如果数组被定义为int型 }}
要看你是什么语言了
如果你是想问怎样在初始化的时候把内容设置好了,俺不知道,但是你在初始化的时候,大部分时候都会自动清空(我曾经遇到过值被赋的高得离谱),也就是全部赋成0,如果你是在想设的话,一楼的循环可以,如果真的有这样的函数的话效率也不过如此。
memset( matrix , 0 , sizeof( matrix ) ) ;

如何对数组进行初始化

4,数组初始化

使用memset函数例如:#include<iostream>using namespace std;int a[1000][1000];int main() memset(a,0,sizeof(a)); for(int i=0;i<1000;i++) for(int j=0;j<1000;j++) cout<<a[i][j]<<endl; } system("pause");} 这样就行了,但只能赋值为0和-1;
这样是不对的,要不你就用系统的内存初始化函数:inta[10];memset(a,0,10*sizeof(int));要不你就:inta[10]=这样也全是0啦。或者inta[10]=其他没写的就是0啦。
你的编译器的问题,asni c99 标准里int a[10]=JAVA数组初始化;是完全正确的,并指定a[0]的值为0,但你并没有给后面的变量赋值,编译器会自动把没有赋值的变量初始化为数组最后一个成员的值,即int a[10]=JAVA数组初始化;数组a的值都被初始化为了0,应该是你编译器过老的缘故,问题2也是
C语言对一维数组的初始化赋值有以下几点规定:1) 可以只给部分元素赋初值。当例如: int a[10]=表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。///应该是你想要的答案2) 只能给元素逐个赋值,不能给数组整体赋值。例如给十个元素全部赋1值,只能写为: int a[10]=而不能写为: int a[10]=1;3) 如给全部元素赋值,则在数组说明中,可以不给出数组元素的个数。例如: int a[5]=可写为: int a[]=对于二维数组初始化赋值还有以下说明:1) 可以只对部分元素赋初值,未赋初值的元素自动取0值。///应该是你想要的答案 例如: int a[3][3]= 是对每一行的第一列元素赋值,未赋值的元素取0值。 赋值后各元素的值为: 1 0 0 2 0 0 3 0 0 int a [3][3]=赋值后的元素值为: 0 1 0 0 0 2 3 0 0 2) 如对全部元素赋初值,则第一维的长度可以不给出。 例如: int a[3][3]=可以写为:int a[][3]=3) 数组是一种构造类型的数据。二维数组可以看作是由一维数组的嵌套而构成的。设一维数组的每个元素都又是一个数组,就组成了二维数组。当然,前提是各元素类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组。C语言允许这种分解。如二维数组a[3][4],可分解为三个一维数组,其数组名分别为:a[0]a[1]a[2]对这三个一维数组不需另作说明即可使用。这三个一维数组都有4个元素,例如:一维数组a[0]的元素为a[0][0],a[0][1],a[0][2],a[0][3]。必须强调的是,a[0],a[1],a[2]不能当作下标变量使用,它们是数组名,不是一个单纯的下标变量。以上是我找的资料,希望对你有帮助
置0int a[1000][1000]; memset(a, 0, sizeof(int)*1000*1000);
你的编译器的问题,asnic99标准里inta[10]=a[10]=JAVA数组初始化;数组a的值都被初始化为了0,应该是你编译器过老的缘故,问题2也是

5,关于数组的初始化简单问题高手来看看吧

由于C语言不支持动态数组,所以实现动态数组需要迂回的方法。 可以先从一维动态数组开始,最简单的方法是声明一个指针,指向malloc开辟一块空间,这个指针就是一个动态数组了。那么现在就是用吧!如果这个动态数组只是一个字符串还没有什么,如果是别的什么数组,那就麻烦了!数组长度是多少?哦,对了,再声明一个int变量保存数组的长度就好了!对,就是这样,为了使用起来更方便,我们把它变成一个结构体好了: typedef char DataType; //这里表明我们的动态数组是char类型,但你当然可以把它改成你所需要的任意类型 typedef struct DataType *base; //数组元素的基地址 int bound; //数组长度 }Array1; 当然,把这个做成类那就更好了,如果再支持动态数据类型那就更更好了。这当然是可以实现的,但这里只讲讲动态多维数组的原理,就不用那么复杂了。 下面,如果是动态二维数组呢,我们直接上结构体好了: typedef char DataType; //每次都要声明这个东西真是有点累!不过这里我们假定这个和上面那个是为不同的程序声明的。嗯~从下次开始,我就不再写这行了,假定所有的这些都在一个文件中! typedef struct DataType *base; //数组元素的基地址 int bound1; //第一维数组长度 int bound2; //第二维数组长度 }Array2; 注意,malloc开辟一块空间的时候,长度是bound1*bound2*sizeof(DataType)! 再接下来,动态三维数组: typedef struct DataType *base; //数组元素的基地址 int bound1; //第一维数组长度 int bound2; //第二维数组长度 int bound3; //第三维数组长度 }Array3; 举一反三……嘿嘿,那八维数组呢……那3680维呢?(坏笑~) 这有什么难的,看我的: #define dim 3680 //你想要多少都行! typedef struct DataType *base; //数组元素的基地址 int bound[dim]; //所有维的数组长度的数组 }Array_dim; 怎么样,还可以吧?嗯,好是好,只不过数组的维度不是动态的?!唉,简直是动态狂!那好吧,看我出绝招! typedef struct DataType *base; //数组元素的基地址 Array1 bounds; //所有维的数组长度的数组 }Array_dim2; 嘿嘿,看不懂了吧!我把bound[dim](所有维的数组长度的数组)变成了动态数组了!好吧好吧,我把它展开一下,好看的更清楚: typedef struct DataType *base; //数组元素的基地址 int dim; //数组的维数 int *bounds; //数组的每一维的数组长度的数组的指针 }Array_dim3; 这个效果还可以吧!数组的维数(dim)是动态的,每一维的数组长度储存在bounds指针指向的数组中!注意:动态维数的动态数组的长度是每一维的数组长度的乘积再乘数据类型的长度: bounds[0]*bounds[1]……*bounds[dim-1]*sizeof(DataType)当然,放在for循环中使i从0到dim-1,反复乘bounds[i]即可。 终于结束了了!不过从Array_dim3出发还是可以继续派生更多的东西,比如类(有构造函数、析构函数的那种!),或者给每个维度加上一个名字(比如直角坐标系中三维空间的名字可以叫x、y、z,当然也可以是长、宽、高或者其他的名字)! 文章中,int *constants的一个动态数组(当然是一维的),数组的长度是dim,就是维度。这样,constants[]可以视为Array(动态维度的动态数组)的每个纬度的名字。当然,注释说constants[]是“数组存储映像常量”。我就认为这是每个纬度的名字的挪用吧。

6,如何初始化数组的值

import java.util.*; public class MultiDimArray { static Random rand = new Random(); public static void main(String[] args){ int[][] a1 = { {1 ,2 , 3}, {4, 5, 6}, }; for(int i = 0; i < a1.length; i++) for(int j = 0; j < a1[i].length; j++) System.out.println("a1[ "+ i +"][" + j +"] = " + a1[i][j]); int[][][] a2 = new int[2][2][4]; for(int i = 0; i < a2.length; i++) for(int j = 0; j < a2[i].length; j++) for(int k = 0; k < a2[i][j].length; k++) System.out.println("a2[" + i + "][" + j +"][" + k +" ]= " +a2[i][j][k]); int[][][] a3 = new int[rand.nextInt(7)][][]; for(int i = 0; i < a3.length; i++){ a3[i] = new int[rand.nextInt(5)][]; for(int j = 0; j < a3[i].length; j++ ) a3[i][j] = new int[rand.nextInt(5)]; }
java中数组常用的方法基本都被包含在里面 import java.util.*; public class MultiDimArray { static Random rand = new Random(); public static void main(String[] args){ int[][] a1 = { {1 ,2 , 3}, {4, 5, 6}, }; for(int i = 0; i < a1.length; i++) for(int j = 0; j < a1[i].length; j++) System.out.println("a1[ "+ i +"][" + j +"] = " + a1[i][j]); int[][][] a2 = new int[2][2][4]; for(int i = 0; i < a2.length; i++) for(int j = 0; j < a2[i].length; j++) for(int k = 0; k < a2[i][j].length; k++) System.out.println("a2[" + i + "][" + j +"][" + k +" ]= " +a2[i][j][k]); int[][][] a3 = new int[rand.nextInt(7)][][]; for(int i = 0; i < a3.length; i++){ a3[i] = new int[rand.nextInt(5)][]; for(int j = 0; j < a3[i].length; j++ ) a3[i][j] = new int[rand.nextInt(5)]; } for(int i = 0; i < a3.length; i++) for(int j = 0; j < a3[i].length; j++) for(int k = 0; k < a3[i][j].length; k++) System.out.println("a3[" + i + "][" + j + "][" + k + "] = " + a3[i][j][k]); Integer[][] a4 = { {new Integer(1), new Integer(2)}, {new Integer(3), new Integer(4)}, {new Integer(5), new Integer(6)}, }; for(int i = 0; i < a4.length; i++) for(int j = 0; j

文章TAG:数组初始化  JAVA数组初始化  
下一篇