二维数组与交错数组
2015-09-15 10:56
344 查看
一直对多维的数组不是很感冒,今天我决定彻底的把它搞明白!!
首先搞清楚二维数组在C#和C++中的区别:
int[,] 是二维数组,它就是传统意义上 n x m 的表,和 C++ 里的 int[][] 是一个意思。
int[][] 是交错数组,为不定数组,是一个一维数组,只是在一维数组里的每个元素就嵌套一个一维数组。与 C++ 里的 int[][] 不同。它其实是一个 int[] 里嵌套着 int[],可以理解为 (int[])[]。
如下图所示:
二维数组的初始化和赋值:
·初始化赋值:int[,] a = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } };
初始化大小:
int[,] b=new[10,10];可使用循环赋值;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
a[i,j]=i+j;
}
}
交错数组的初始化和赋值:(其元素必须初始化后才能使用!否则为null)
初始化: int [] [] a=new int[10][];
声明并初始化 int[][] a=new int[][]{new int[]{1,2,3},new int[]{1,2},new int[]{4,5,6}};
采用索引赋值法,给单个元素赋值
: a[2][0] = 5;
直接赋值法:a[2]=new int[]{1,2,3};
首先搞清楚二维数组在C#和C++中的区别:
int[,] 是二维数组,它就是传统意义上 n x m 的表,和 C++ 里的 int[][] 是一个意思。
int[][] 是交错数组,为不定数组,是一个一维数组,只是在一维数组里的每个元素就嵌套一个一维数组。与 C++ 里的 int[][] 不同。它其实是一个 int[] 里嵌套着 int[],可以理解为 (int[])[]。
如下图所示:
二维数组的初始化和赋值:
·初始化赋值:int[,] a = new int[,] { { 1, 2, 3 }, { 4, 5, 6 } };
初始化大小:
int[,] b=new[10,10];可使用循环赋值;
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
a[i,j]=i+j;
}
}
交错数组的初始化和赋值:(其元素必须初始化后才能使用!否则为null)
初始化: int [] [] a=new int[10][];
声明并初始化 int[][] a=new int[][]{new int[]{1,2,3},new int[]{1,2},new int[]{4,5,6}};
采用索引赋值法,给单个元素赋值
: a[2][0] = 5;
直接赋值法:a[2]=new int[]{1,2,3};
相关文章推荐
- fcntl的close-on-exec标志 http://blog.csdn.net/sunlylorn/article/details/6363727
- linux socket套接字超时之setsockopt以及各网络接口超时判断
- 操作二进制位串的工具
- TIdUDPClient
- 华为2016校招 机试题
- spring下载地址
- 百度 阿里 腾讯 BAT笔试题目
- C++Primer第五版 6.5.1节练习
- iOS开发如何在外面拿到一个子控件的frame ????
- 什么是单例模式?单例模式有哪些方式实现?写个例子。
- view的onFinishInflate()何时调用的?
- Linux安装telnet
- PHP变量内存分配
- 欢迎使用CSDN-markdown编辑器
- 什么是真正的实时操作系统
- linux系统CentOS6.5下tokudb数据库引擎的安装
- [LeetCode]:217:Contains Duplicate
- 统计学基础回顾(一)
- 右键点击修改数据状态排序
- 智能指针