python定义三维数组 为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在?
为什么我觉得C语言中二维数组没用,明明两个一维数组就能解决,为什么要有二维数组存在?
我也来说说。
C语言没有专门的二维数组
首先,C语言中,基本类型里有“数组”,也就是一维数组。而我们平时所说的二维数组是元素为数组的数组,其实是一种用一维数组对二维数组的模拟。
一维数组可以解决多维问题
从底层实现来说,无论是一维数组、二维数组还是多维数组,在内存中都是以一维方式排列的。而多维数组也是用一维数组模拟实现的。从这一点来说,一维数组就能解决多维数组的问题。常见的模拟方式:
将 二维数组a[m][n]表示为一维数组a[m*n]
用a[y*n x]代替a[y][x]
注意这里是用一个一维数组代替二维数组,而不是用两个一维数组代替二维数组
多维数组有其存在的必要
从代码清晰易读的角度来说,二维数组、多维数组是有意义的。有许多数据是适合用二维数组或多维数组表示的。以适合的方式表示数据,算法的编写也会简洁明了。典型的适合二维数组表示的数据如平面图形、矩阵。用二维数组表示,程序清晰易读;如果用一维数组表示,其可读性就会低不少。
相对于汇编语言,C提供了一定的数据抽象,如数组、结构体(struct)、联合(union)。其实没有这些抽象,程序照样能编。但C语言的好处就在这里,它提供的抽象程度,非常适合系统级程序开发和维护。如果觉得C语言提供的抽象程度过高,也许汇编更适合您的项目,如果觉得C语言提供的抽象程度过低,那选择就多了,从C ,Java到现在的各种新语言,都可以尝试更换。
三维组和二维数组的区别?
我来个形象生动的~ 把一个数当作一个鸡蛋,那么一个int型的变量就是一个鸡蛋,对吧。
现在建立一个一维数组int[5]:这个就相当于在你面前放了一排5个鸡蛋,这里也没问题吧。接下来到二维数组int[3][4]:首先,由二维数组的第二维[4]我们可以确定一排是4个鸡蛋,这个跟刚才的一维数组一样。那么之前的[3]是什么呢?那就是一共有几排了!于是int[3][4]相当于在你面前放了3排的鸡蛋,一排4个~ 再到三维数组int[3][4][5]:第三维的[5]就是之前一位数组里的一排5个鸡蛋,第二维的[4]就是一共有4排。那么这个[3]呢?那就是如果把这4排每排5个的鸡蛋看成一个小组,即4*5=20个鸡蛋是一个组,在你面前就放着3组的鸡蛋~ 不知道明白了没有?西门子的二维数组,三维数组怎么使用?
与一维和二维数组类似,以整型为例,三维数组的定义,赋值,和遍历操作如下:1 定义:int a[10][10][10]这样就定义了一个10*10*10的三维数组。2 赋值:访问三维数组一个元素可以写作a[m][n][p]。于是将三维数组每个值分别输入的代码如下:int i,j,kfor(i = 0 i < 10 i )for(j = 0 j < 10 j )for(k = 0 k < 10 k )cin>>a[i][j][k]3遍历:事实上,2中所介绍的赋值,实际上已经对数组元素做了一次遍历。打印的方法如下:int i,j,kfor(i = 0 i < 10 i )for(j = 0 j < 10 j )for(k = 0 k < 10 k )cout<<a[i][j][k]
西门子的二维数组,三维数组怎么使用?
matlab中三维数组的生成方式跟二维数组差不多,只不过多了一个参数而已。
下面通过举例来具体说明如何产生及使用三维数组。A = zeros(2, 2, 3) % 生成一个2*2*3的三维数组 显示出来的结构如下: A(:, :, 1)= % 一个2*2的二维数组 0 0 0 0 A(:, :, 2)= % 一个2*2的二维数组 0 0 0 0 A(:, :, 3)= % 一个2*2的二维数组 0 0 0 0python定义三维数组 c语言三维数组举例 三维数组怎么理解下标
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。