int[] 一维数组

int[,]  二维数组

int[] []  交错数组 又称“数组的数组”


  一维数组声明与初始化

声明:  int[] a = new int[];

声明与初始化:  int array1 = new int[] {1,2,3,4};

         int array1 = {1,2,3,4};    //  快捷声明和初始化的方式

不初始化的情况下声明数组变量,但必须使用 new 运算符向此变量分配数组

    int[] array3;

    array3 = new int[] { 1, 3, 5, 7, 9 };   // OK

    // array3 = {1, 3, 5, 7, 9};     // Error

 

int[,]   二维数组        int[, , , ] 三维数组            多维数组
 
声明  int[,]  array = new int[2,4]    int[,,,] array2 = new int[2,5,4]
声明初始化   int array2D = new int[,] { [1,2}, {3,4}, {3,5}}
        int[,] array2Da = new int[3, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 } };
 
       int[, ,] array3D = new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } };
 
       int[, , ] array3D =new int[2,2,3]{ { { 1, 2, 3 }, { 4, 5, 6 } }, { { 7, 8, 9 }, { 10, 11, 12 } } };
 
如果选择在不初始化的情况下声明数组变量,则必须使用 new 运算符将数组赋予变量
    int[,] array5;
    array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } }; // OK
    //array5 = {{1,2}, {3,4}, {5,6}, {7,8}};   // Error
 
 

交错数组是元素为数组的数组。 交错数组元素的维度和大小可以不同。

声明:

int[][] jaggedArray = new int[3][];
 
初始化:
    jaggedArray[0] = new int[5];
       jaggedArray[1] = new int[4];
       jaggedArray[2] = new int[2];
 
每个元素都是一维整数数组。 第一个元素是由 5 个整数组成的数组,第二个是由 4 个整数组成的数组,而第三个是由 2 个整数组成的数组。
 

     int[][] jaggedArray = new int[][]{

    new int[]{1,3,4,5},

    new int[] {0,2,4},

    new int[] {2,4}

    };

或者

 

     int[][] jaggedArray ={

    new int[]{1,3,4,5},

    new int[] {0,2,4},

    new int[] {2,4}

    }


  多维数组与交错数组 理解上是没有多大的差异的,交错数组实际上实现了多维数组的差异化,使用的时候更加自由。

  在C#编译里面,多维数组和差异数组是无法隐性转换的。 作为参数的时候要注意统一。


微软使用手册        https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/arrays/single-dimensional-arrays

C# int[,] 和 int[][]的更多相关文章

  1. int main( int argc, char **argv)

    1.参数 (有时参数是void) argc是程序运行时参数个数 argv是存储参数的数组,可以用char* argv[],也可以用char **argv. 例如编译一个hello.c的程序 1 #in ...

  2. C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别

    转自:http://www.cnblogs.com/leolis/p/3968943.html 在编程过程中,数据转换是经常要用到的,C#中数据转换的方法很多,拿将目标对象转换为 整型(int)来讲, ...

  3. int(*f)(int)

    int(*f)(int): 为指向函数的指针变量的定义方法,其中f为指向函数的指针变量,第一个int为函数返回值类型,第二个int为函数的形参类型.

  4. what is difference in (int)a,(int&)a,&a,int(&a) ?

    This interview question come from a famous communication firm of china. : ) #include <iostream> ...

  5. C#中(int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别 <转>

    作者:Statmoon 出处:http://leolis.cnblogs.com/   在编程过程中,数据转换是经常要用到的,C#中数据转换的方法很多,拿将目标对象转换为整型(int)来讲,有四种方法 ...

  6. the difference between const int *, int * const, int const *

    Some people may be confused about the sequence of const and * on declaration in C++/C, me too. Now I ...

  7. (int)、int.Parse()、int.TryParse()和Convert.ToInt32()的区别

    C#中(int).int.Parse().int.TryParse()和Convert.ToInt32()的区别   原文链接:http://www.cnblogs.com/leolis/p/3968 ...

  8. int main(int argc,char* argv[])详解

    argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数命令行后面跟的用户输入的参数, 比如:       int   main(int   argc,   ...

  9. 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n

      35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...

  10. int main(int argc, char * argv[]) 里的异常处理

    #import <UIKit/UIKit.h> #import "AppDelegate.h" int main(int argc, char * argv[]) { ...

随机推荐

  1. .net core 多租户框架整理

    一 saaskitAsp.Net Core multi-tenant application Sample using #SaaSKithttps://github.com/saaskit/saask ...

  2. 深入浅出mybatis之映射器

    目录 概述 XML映射器 定义xml映射器 配置xml映射器 使用xml映射器 接口映射器 定义接口映射器 配置接口映射器 使用接口映射器 总结与对比 概述 映射器是MyBatis中最核心的组件之一, ...

  3. Jupyter NoteBook功能介绍

    一.Jupyter Notebook 介绍 文学编程 在介绍 Jupyter Notebook 之前,让我们先来看一个概念:文学编程 ( Literate programming ),这是由 Dona ...

  4. Linux下使用crontab对MYSQL进行备份以及定时清

      数据备份是一个项目必需的工作,保证数据库出问题时,将损失减小到最低.本文记录下linux服务器中使用脚本对MYSQL数据备份,并且定时清除7天前的备份. crontab定时备份 1.创建备份目录 ...

  5. django项目实现中文检索

    在settings.py中设置 EMAIL_USE_SSL = True EMAIL_HOST = 'smtp.qq.com'  # 如果是 163 改成 smtp.163.com EMAIL_POR ...

  6. css的transform属性让子元素在父元素里面垂直水平居中

  7. nginx——location匹配流程图

    location匹配流程图 location理解 1.收到url请求后,nginx首先进行精确匹配(有“=”的为精确匹配),如果匹配成功,则直接返回精确匹配结果,如果没有命中则会继续向下进行普通匹配 ...

  8. 使用Java方式连接HDFS

    IDEA中新建Maven工程,添加POM依赖, 在IDE的提示中, 点击 Import Changes 等待自动下载完成相关的依赖包. <?xml version="1.0" ...

  9. Java框架中Struts和Struts2框架的区别

    struts1 与 struts2 的区别:1.都是 MVC 的 WEB 框架,2 struts1的老牌框架,应用很广泛,有很好的群众基础,使用它开发风险很小,成本更低!struts2虽然基于这个框架 ...

  10. LinkedList阅读

    package java.util; import java.util.function.Consumer; public class LinkedList<E> extends Abst ...