在数据结构算法,以及科学计算中,数组是必不可少的工具。习惯了C中简单直接的数组表达方式的程序员,初次使用C#中的数组时,可能会有一些茫然。本文采用对比的方式来学习C#数组的使用方式。本文不介绍那些语法糖的东西,尽管语法糖有时候能大大地简化代码。
1 一维数组
C 语言中一维数组实例代码如下:
#include <stdio.h>
int main(int argc, char** argv)
{
int a[10];
int i = 0;
for(i=0; i<=10; i++) //当i=10时,数组越界
{
a[i] = i;
}
}
总结特点: (1)索引从0开始;(2)越界不会引发错误;(3)数组默认存放到栈内存中;(4)声明时必须制定长度;
C#中同样功能的代码如下:
class Test
{
static void Main()
{
int[] a;
a = new int[10];
for (int i = 0; i <= 10; i++) //i=10时,会抛出异常
{
a[i] = i;
}
}
}
上述代码编译时通过,运行时发生异常。
总结特点:(1)索引从0开始;(2)越界运行时会产生异常;(3)数组本身是对象,所以存放到堆内存中;(4)声明语法与C有差异;(5)创建对象而不是声明时指定长度;
2 多维数组
多维数组在C和C#中的语法格式差别较大。以二维数组为例。先看C的: