2016 - 2024

感恩一路有你

二维数组和一维数组 为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在?

浏览量:1181 时间:2021-03-14 04:05:21 作者:admin

为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在?

我也来说说。


C语言没有专门的二维数组

首先,C语言中,基本类型里有“数组”,也就是一维数组。而我们平时所说的二维数组是元素为数组的数组,其实是一种用一维数组对二维数组的模拟。


一维数组可以解决多维问题

从底层实现来说,无论是一维数组、二维数组还是多维数组,在内存中都是以一维方式排列的。而多维数组也是用一维数组模拟实现的。从这一点来说,一维数组就能解决多维数组的问题。常见的模拟方式:

  • 将 二维数组a[m][n]表示为一维数组a[m*n]

  • 用a[y*n x]代替a[y][x]

  • 注意这里是用一个一维数组代替二维数组,而不是用两个一维数组代替二维数组


多维数组有其存在的必要

从代码清晰易读的角度来说,二维数组、多维数组是有意义的。有许多数据是适合用二维数组或多维数组表示的。以适合的方式表示数据,算法的编写也会简洁明了。典型的适合二维数组表示的数据如平面图形、矩阵。用二维数组表示,程序清晰易读;如果用一维数组表示,其可读性就会低不少。


相对于汇编语言,C提供了一定的数据抽象,如数组、结构体(struct)、联合(union)。其实没有这些抽象,程序照样能编。但C语言的好处就在这里,它提供的抽象程度,非常适合系统级程序开发和维护。如果觉得C语言提供的抽象程度过高,也许汇编更适合您的项目,如果觉得C语言提供的抽象程度过低,那选择就多了,从C ,Java到现在的各种新语言,都可以尝试更换。

一维数组和二维数组的区别?

一维数组和二维数组区别:单行或单列的数组,称为一维数组,多行多列(含2行2列)的数组是二维数组。所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。

二维数组和一维数组 js多维数组转一维数组 多维数组转一维数组

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。