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可以通过指针进行赋值。
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- 插入排序
- 冒泡排序
- 关于指针的一些事情
- 堆排序
- 快速排序