C#、Java、C、C++初始化数组过程和比较
来源:互联网 发布:mac c66是什么色 编辑:程序博客网 时间:2024/05/17 23:10
与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 = new int[,] { { 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[n]; // 未初始化
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)[n] = new int[m][n];
delete []value; // n必须为常量,调用直观。未初始化
指针方式二: int** value = new int* [m];
for(i) value[i] = new int[n];
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可以通过指针进行赋值。
0 1
- C#、Java、C、C++初始化数组过程和比较
- java和c语言中数组定义初始化的区别
- C++/C 数组初始化问题
- C#,C++,Java比较
- c#,C++,Java比较
- C、C++、JAVA比较
- C++:二维数组初始化
- C 数组初始化
- C/C++数组初始化
- object c 数组初始化
- C 初始化数组
- C 语言数组初始化
- C语言数组初始化
- c语言--数组初始化
- [C++]数组初始化
- 比较C Sharp和Java
- 比较C Sharp和Java
- java和C++ C比较
- [Python]抓取豆瓣电影列表的标题
- 学习Javascript闭包(Closure)
- svm学习资料
- android usb 通信
- IP地址的规划和设计方法(一)
- C#、Java、C、C++初始化数组过程和比较
- 馀事勿取
- AndroidManifest.xml文件详解(uses-configuration)
- mysql MMM高可用方案
- findbugs
- 组合类中成员类(类指针)的构造,拷贝构造,运算符重载及析构函数的调用问题
- Java基础--集合
- eclipse配置jdk源码
- 业务系统到底需要什么样的ID生成器