想研究一些面向对象的东西,也许是代码写得还不够多。感觉还不好,看那些教程,不是嫌太水就是太难看不懂。心情很是落寞

不过再怎样也要坚持每天发一篇博客。

这篇来说一下C#中的数组,多维数组,交错数组的一些东西。

有那么一点点研究茴香豆的茴有四种写法的感觉。

先讲三点显而易见却又值得一提的东西

第一点数组是一种数据结构

似乎没什么好解释的

第二点数组类型是从抽象类Array派生出的引用类型

与C当中的数组不同的是C#以面向对象的方式设计的。

所以再次证明 任何东西都是对象

第三点C#的数组可以开很大

C直接开在堆栈不同的还有C#的数组在托管栈只有引用,而实际的数据是放在托管堆里面的。

int[, , ] a = new int[500, 500, 500];

这样是不会有问题的。同样的大小在C早就……了

虽然是这么说,正常使用是不大可能用到这么大的数组。

第四点数组类型可以使用foreach迭代

这个部分我想另外写一篇来研究这个

另外还有几点可以参考MSDN数组部分

然后呢,先上代码吧

//一维数组

int[] a1 = new int[3];

int[] a2 = new int[] { 0, 1, 2 };

int[] a3 = { 0, 1, 2 };

int[] a4;

a4 = new int[3] { 0, 1, 2 };

//int[3] a5; 错误代码

//int a5[3]; 错误代码

a1[0] = 0;

Console.WriteLine("{0}",a1[0]);

//多维数据

int[,] b1 = new int[3, 3];

int[,] b2 = new int[,] {{0,1,2},

{0,1,2},

{0,1,2}};

int[,] b3 = new int[,] {{0,1,2},

{0,1,2},

{0,1,2}};

int[,] b4;

b4 = new int[,]{{0,1,2},

{0,1,2},

{0,1,2}};

int[, ,] b5 = new int[2,2,2] {{{1,2},{1,2}},

{{1,2},{1,2}}};

b5[0,0,0] = 1;

Console.WriteLine("{0}",b5[0,0,0]);

//交错数组(数组的数组)

int[][] c1 = new int[3][];

c1[0] = new int[3];

c1[1] = new int[2];

c1[2] = new int[1];

int[][] c2 = new int[][]

{

new int[] {1,2,3},

new int[] {4,5,6},

new int[] {7,8,9}

};

int[][] c3 =

{

new int[] {1,2,3},

new int[] {4,5,6},

new int[] {7,8,9}

};

//int[][] c4 = new int[3][3];错误代码

c1[0][0] = 3;

Console.WriteLine("{0}",c1[0][0]);

//混搭

int[][,] d1 = new int[1][,];

d1[0] = new int[,]{{4,2,3},

{4,2,3},

{4,2,3}};

Console.WriteLine("{0}",d1[0][0,0]);

一维数组部分,比较有价值的是那两行错误的代码。

C#与C在这个地方语法有所不同,本来这两种语言的设计这块时的思路就有所差异

关于语法的事,习惯就好了

关于多维数组,C#当中有两种方式,一个是多维数组,另一种是交错数组

根据MSDN的说明

多维数组只是数组,交错数组是数组的数组

半句半句看都还好,整句看起来怎么不是一回事。我也不知道该怎么解释比较好

简单总结了下面几点

交错矩阵的声明部分比较麻烦

使用时交错数组的样子更像C语言是人都看出来了,可以利用FOR语句来简化

多维数组只能构造一个矩形的数据结构,而使用交错数组可以设计出不规则的结构

所以有需要时可以选择使用交错矩阵。

在这里 使用foreach迭代也有所不同,

但都非常给力,具体可以参考相关文章

交错数组的访问速度比多维数组快

具体的分析可以参见

唉,想自己写一些东西,真的不容易。也许是自己对这部分的内容掌握还没十分彻底,也许是语言表达的问题

总之短短的一篇文章,写了好久,而且似乎没能表达出什么特别的东西

交错数组 c语言,C#中的数组,多维数组和交错数组相关推荐

  1. java的字符串指针数组,C语言字符串中的指针与数组

    先说一下字符串字面量(字符串常量):双引号中的字符和编译器自动加入末尾的\0字符,都作为字符串储存在内存中.字符串常量属于静态存储类别,说明如果在函数中使用字符串常量,该字符串只会储存一次,在整个程序 ...

  2. php中多维数组的长度,php中count获取多维数组长度的方法

    这篇文章主要介绍了php中count获取多维数组长度的方法,实例分析了数组的原理并总结了数组长度计算的方法,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了php中count获取多维数组长度的实 ...

  3. arrays中copyof复制两个数组_C语言100题集合026-使用指针交换两个数组中的最大值

    系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞.转发.收藏哦- 后续C语言经典100例将会以pdf和代码的形式发放到公众号 欢迎关注:计算广告生态 即 ...

  4. leetcode旋转数组 c语言,leetcode explore 初级算法第三题,旋转数组代码实现

    leetcode explore 初级算法第三题,旋转数组代码实现.原题链接: 题目分析 因为题目不是很长,这里把题目贴出来: 给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数. ...

  5. C语言指针怎么存二维数组,C语言怎么用指针代替二维数组

    1.设p是指向二维数组a[m][n]的指针变量,则有:int*p=a[0];//此时P是指向一维数组的指针.P++后,p指向a[0][1].2.如果定义int(*p1)[n];p1=a;p1++后,p ...

  6. php 1 2 3 转arry_在PHP语言中使用JSON和将json还原成数组的方法

    在之前我写过php返回json数据简单实例,刚刚上网,突然发现一篇文章,也是介绍json的,还挺详细,值得参考.内容如下 从5.2版本开始,PHP原生提供json_encode()和json_deco ...

  7. 在qt中用c语言数组,在QT函数中返回一个数组/把一个数组传参给函数

    1.把数组传参给函数 可以定义一个QVector的一个数组 QVector num(10); for(int  i =0;i<10;i++) num [i] = i*i; fun(num); / ...

  8. c语言中二维数组怎么,c语言中什么是二维数组

    c语言中什么是二维数组 二维数组A[m][n],这是一个m行,n列的二维数组.以下是由应届毕业生小编整理关于c语言二维数组的内容,希望对大家有所帮助!更多相关内容请关注应届毕业生考试 网. c语言的二 ...

  9. C语言试题五之计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和

    1.题目 请编写函数function,它的功能是:计算并输出给定数组(长度为9)中每相邻两个元素之平均值的平方根之和 例子:若我们main函数给出double a[9] = {1, 2, 3, 4, ...

最新文章

  1. 液晶OCM12864,结构体,枚举,指针,规范化和模块化编程
  2. C++知识点55——函数模板
  3. 移动智能家庭终端技术规范学习总结
  4. springboot读取自定义properties文件
  5. python gevent async_python的异步初体验(gevent、async、await)
  6. [Leetcode][第679题][JAVA][24点游戏][回溯][暴力]
  7. Bootstrap3 价格滑动块 price range bootstrap-slider
  8. vue res返回html,vue 组件内获取actions的response方式
  9. STL泛型编程之map映照容器
  10. 程序员该如在低代码和无代码开发中抉择?
  11. 谁能主宰服务器市场?Linux 之父和 Redis 之父有分歧了
  12. 为什么越来越多的程序员不写注释?注释应该怎么写?
  13. nuxt.js框架使用vue-waterfall-easy插件如何引入--语法引用
  14. Matlab实现snn代码,SNN系列|神经元模型篇(3)SRM
  15. 浅谈Java SE、Java EE、JME的关系
  16. C#WinForm 程序退出后,托盘区的图标不能及时消失
  17. .NetCore——Autofac使用
  18. 火狐经典主题_Firefox的2010年假日角色角色主题
  19. 2.MySQL索引优化
  20. Mac 平台 Android FFmpeg 编译与集成实践

热门文章

  1. 他这么做,居然是因为女朋友
  2. 基于 HTML5 + WebGL 的宇宙 3D 展示系统
  3. jQuery实现在线选座订座(影院篇)
  4. 大学英语b和计算机三级,统考大学英语b
  5. NSA泄密事件之SMB系列远程命令执行漏洞及Doublepulsar后门全球数据分析
  6. caffe学习(4)数据层
  7. linux下生成ssh密钥并获取密钥
  8. Beagle填充之坑ERROR: REF field is not a sequence of A, C, T, G, or N characters at
  9. 坐标系统和投影变换基础知识及其在ArcGIS桌面产品中的应用(二)
  10. LayUi使用switch开关,动态的去控制它是否被启用