C#中的数组和C++中数组的区别

区别|数组

C#中数组是引用类型,C#定义整型数组方式是:int [] intArray = {1,2,3};或int [] intArray = new int[10];而C++中定义整型数组的方式是:int intArray[] = {1,2,3};或int * intArray = new int[10];C#中的数组可以是一维的也可以是多维的,同样也支持矩阵和参差不齐的数组。注意:定义多维数组(矩阵)的方式是[,,]而定义多维“参差矩阵”的方式是[][]。另外,new关键字的使用并不一定表示对象是动态分配的(进入栈中)。下面是C#中(一维)多维数组常见的定义方式:int []a1;   //定义一维数组int [,]a2;  //定义二维数组int [,,]a3; //定义三维数组int []a1 = new int [10];       //定义一维数组深度int [,]a2 = new int [10,20];     //定义二维数组深度int [,,]a3 = new int [10,20,30]; //定义三位数组深度int []a1 = new int []{1,2,3};       //初始化int [,]a2 = new int [,]{{1,2,3},{4,5,6}};还可以定义“参差不齐”的数组:int [][]var = new int [3][];var[0] = new int[]{1,2,3};var[1] = new int[]{1,2,3,4,5,6};var[2] = new int[]{1,2,3,4,5,6,7,8,9};注意,int [,]a和int [][]a的区别:前者定义了一个二维固定数组,后者定义了一个二维可变数组。只是它们都还没被分配空间和初始化。int [][]var = new int[3][4];是错误的。以下错误:class Test{static void F(int []arr){}static void Main(){F({1,2,3});//出错!{1,2,3}并非有效表达式。}}以下正确:class Test{statci void F(int []arr){}static void Main(){F(new int []{1,2,3});}}

时间: 2024-09-24 05:19:33

C#中的数组和C++中数组的区别的相关文章

java中++a和a++ 在数组实现栈中的小疑问

问题描述 java中++a和a++ 在数组实现栈中的小疑问 package 数组实现栈; public class StackArray implements Stack { public static final int num = 1024;//数组默认容量 public int capacity;//数组实际容量 public Object s[];//对象数组 public int top = -1;//栈顶元素位置 //构建默认容量栈对象 public StackArray() { t

ios-IOS中获取到数组,每一次获取到的不一样,把这些数组拼接成一个数组

问题描述 IOS中获取到数组,每一次获取到的不一样,把这些数组拼接成一个数组 OC获取数据,循环放入数组中,让这些数据拼接成数组,这些数据也可能是一个数组,把数组拼接成一个数组 解决方案 //构造不同数组 NSArray *array1 = @[@"1",@"2",@"3",@"4"]; NSArray *array2 = @[@"5",@"6",@"7",@&quo

C++中通过模板向函数传递数组长度

我们知道,在C/C++中,向一个函数传递数组时,实际上传送的是这个数组的首地址,也即是一个指针类型.所以,在函数中,我们没有办法知道这个传递进来的数组的长度到底为多长,一个普遍的方法就是再增加一个参数,来记录传递进来的数组的长度. 不过在C++中,使用模板机制,可以很好地解决这个问题,如下面的代码所示: #include <iostream> using namespace std; template<class T, int N> void array(T (&param

js中的对象声明方式以及数组的一些用法

 本文为大家介绍下js中的对象声明方式以及数组的一些用法,下面有个不错的示例,感兴趣的朋友可以参考下,希望对大家有所帮助  代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  <html>  <head>  <title> New Document &l

100个开源C/C++项目中的bugs(一)数组和字符串处理的错误

from:http://www.oschina.net/question/1579_45444 100个开源C/C++项目中的bugs 摘要 介绍 发现错误样本的各类开源项目 数组和字符串处理的错误 未定义行为 与运算符优先级相关的错误 格式化输出错误 代码打印错误例子 不正确的使用基本函数和类 无效代码的例子 总为 true 或 false 的条件 代码漏洞 复制粘贴 逾期空指针检查 杂项 摘要 本文演示静态代码分析的能力. 提供了100个已在开源C/C++项目中发现的错误例子给读者研究.所有

C++中的指针、数组指针与指针数组、函数指针与指针函数

C++中的指针.数组指针与指针数组.函数指针与指针函数 本文从初学者的角度,深入浅出地详解什么是指针.如何使用指针.如何定义指针.如何定义数组指针和函数指针,并给出对应的实例演示:接着,区别了数组指针与指针数组.函数指针与指针函数:最后,对最常混淆的引用传递.值传递和指针传递做了区处. C++中一个重要的特性就是指针,指针不仅具有获得地址的能力,还具有操作地址的能力.指针可以用于数组.或作为函数的参数,用来访问内存和对内存的操作,指针的使用使得C++很高效,但是指针也非常危险,使用不当会带来比较

android-如何找按钮数组在布局中的横竖坐标位置?

问题描述 如何找按钮数组在布局中的横竖坐标位置? 我创建了一个按钮数组,当点击每一个按钮时都会调用 onClick 方法.在那个方法中,如何获得按钮的位置,比如行和列的位置?创建 buttons 数组: LinearLayout layoutVertical = (LinearLayout) findViewById(R.id.liVLayout); LinearLayout rowLayout=null; LayoutParams param = new LinearLayout.Layout

在java中一维数组和二维数组有什么区别吗?

问题描述 在java中一维数组和二维数组有什么区别吗? 求大神指点java中一维数组和二维数组的区别,为什么一位数组是一行 二维数组可以定义多行 解决方案 如图黑色的是一维数组红色的是二维数组一维数组用来存数据二维数组用来存一维数组 解决方案二: JAVA中一维数组和二维数组的定义一维数组及二维数组的用法java中arraylist和一维数组二维数组的转换 解决方案三: 一楼正解,一维和二维的区别就是线和面的区别,一维的数组你就可以通过一个下标来准确定位,而二维的就需要有两个就像坐标系一样,一维

java中除了构造方法可以new,数组可以new,还有什么可以new呢?

问题描述 java中除了构造方法可以new,数组可以new,还有什么可以new呢? java中除了构造方法可以new,数组可以new,还有什么可以new呢? new int[ ] new student ( ) 对象可以new吗 类可以new吗 非构造方法可以new吗 解决方案 new就是用来创建对象的实例,object有默认的构造方法,new 就会调用它,当然你自己也可以写其它形式的构造函数 解决方案二: new创建一个实例.可以的

mysql-在Mysql(或者在js中)构建完整查询结果数组

问题描述 在Mysql(或者在js中)构建完整查询结果数组 是这样子的,我想实现从Mysql中查询结果之后调用给js的highchart画图用 现在我通过mysql的 类似select 数量,月份,状态 from table group by 月份,状态,结果如下: 数量 月份 状态 3 1月 成功 5 1月 失败 3 2月 成功 7 4月 失败 原本我想通过json化之后返回给前台画图. 但很显然,我用highchart画图的时候,需要一整年的数据,即如果某个月份,或者状态没有,这一个数量就必