您的位置:首页 > 编程语言 > C语言/C++

C#、Java、C、C++初始化数组过程和比较

2015-07-31 09:51 549 查看
与C语言、C++有所不同,C#语言初始化数组有三种方法:第一种:直接赋值,这种方法在知道变量取值的情况下,经常使用。如下:
//一维数组
int[] arrayI = {1,2,3};
String[] arrayS = {"one","two","three"};
char[] arrayC = {'a','b','c'};
……
<span style="color:#3366FF;">//二维数组</span>
int[,] arrayII = {{1,2},{3,4},{5,6}};//此时,arrayII[0,0]=1,arrayII[0,1]=2,arrayII[1,0]=3,arrayII[1,1]=4,array[2,0]=5,arrayII[2,1]=6
注意:在这种情况下,不能在【】中填入数组的大小;在二维数组情况下,数组间的数的个数必须相同,如{1,3}与{1,2,3}是不符合要求的,因此不能放在同一个数组里。第二种:使用New运算符进行赋值,如下:
//一维数组
String[] arrayS ;
arrayS = new string[3]{ "one", "two", "three" };
……
或者
String[] arrayS ;
<pre name="code" class="html">arrayS = new string[]{ "one", "two", "three" };
……//二维数组int[,] array5;array5 = newint[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };// OK//array5 = {{1,2}, {3,4}, {5,6}, {7,8}}; // Error
注意:在这种情况下,【】可以选择不填或者填入大小;第三种:一一赋值,这种方法简单但是造成代码臃肿,不建议使用如下:
//一维数组
string[] arrayS = new string[3];
arrayS[0] = "one";
arrayS[1] = "two";
arrayS[2] = "three";
……
<span style="color:#000099;">//二维数组
二维数组和一维数组赋值过程一样。</span>
第四种:循环赋值,这种方法是第三种方法的特例,一般在赋值有规律的值时使用,如下:
//一维数组
int[] arrayI = new int[3];
for(int i=0;i++;i<3){
arrayI[i] = i;
}
<span style="color:#3333FF;">//二维数组
int[,] arrayII = new int[2,3];
for(int i=0;i++;i<2){
for(int j=0;j++;j<3){
arrayII[i,j]=j;
}
}
</span>
Java语言初始化数组的三种方法:第一种静态赋值:直接赋值,如下:
String arrayS[] = new String[]{"one","two","three"};
或者:
<pre name="code" class="html"><pre name="code" class="java">String arrayS[] = {"one","two","three"};
……
第二种动态赋值:一一赋值,如下
String arrayS[] = new String[2];
arrayS[0] = "one";
arrayS[1] = "two";
第三种动态赋值:循环赋值,这种赋值方式经常用于有规律的值的赋值,如下:
int arrayI = new arrayI[3];
for(int i =0;i++;i<3){
arrayI[i] = i;
}
……<span style="color:#006600;"><span style="font-size:14px;"><strong>
注:Java二维数组的初始化过程与C#一样,只是[]的位置不同而已。
</strong></span></span>
C语言和C++ 语言初始化的方法:
一维数组初始化:
标准方式一: int value[100]; // value[i]的值不定,没有初始化
标准方式二: int value[100] = {1,2}; // value[0]和value[1]的值分别为1和2,而没有定义的value[i>1]
// 则初始化为0
指针方式: int* value = new int
; // 未初始化
delete []value;  // 一定不能忘了删除数组空间
二维数组初始化:
标准方式一: int value[9][9]; // value[i][j]的值不定,没有初始化
标准方式二: int value[9][9] = {{1,1},{2}}; //value[0][0,1]和value[1][0]的值初始化,其他初始化为0
指针方式一: int (*value)
= new int[m]
;
delete []value; // n必须为常量,调用直观。未初始化
指针方式二: int** value = new int* [m];
for(i) value[i] = new int
;
for(i) delete []value[i];
delete []value; // 多次析构,存储麻烦,未初始化
指针方式三: int * value = new int[3][4]; // 数组的存储是按行存储的
delete []value; // 一定要进行内存释放,否则会造成内存泄露
多维数组初始化:
指针方式: int * value = new int[m][3][4]; // 只有第一维可以是变量,其他几维必须都是常量,否则会报错
delete []value; // 一定要进行内存释放,否则会造成内存泄露
注:参考“做自己的快乐人”的一篇博文“C++数组操作”,地址:点击打开链接综合比较:1、 C#语言和C、C++、Java语言的最大区别在于:C#语言标记数组大小的[]一般放在数据类型名之后,比如int[3]、String[]等等,而C++、C和Java一般至于变量名之后;2、 四种语言都能直接赋值;3、 C++和C与Java、C#的不同操作还有一点是,C++、C可以通过指针进行赋值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 c# java C C++