设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2716|回复: 10
打印 上一主题 下一主题

[胡扯] 什么是数组

[复制链接]

Lv4.逐梦者 (版主)

梦石
1
星屑
6911
在线时间
2650 小时
注册时间
2013-8-23
帖子
2315

开拓者

跳转到指定楼层
1
发表于 2017-7-29 15:56:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x

Array: 数组,阵列

一维数组
概念:只有宽,或只有高。
简单讲,他的面积只有一行,或者一列。

某个数值的坐标: (1, y) or ( x, 1)

这是一个一维数组:
宽度是10,高度只有1
0
12456789


这是一个一维数组:
宽度是1,高度是6
0
1
2
3
4
5

是不是想到一个东西—— Excel表格。
用表格来举例,一维数组应该是长这个样子的:

温馨提示:
灰色背景部分不算表格内容。
只是为了解释方便而向外扩展。


ABCD
1



或者

A
1
2
3
4

白色格子里面,相当于一个抽屉。
你应该去过超市,用过储物柜吧~
你可以在格子里面,放进一些东西。

比如:

玩家A玩家B玩家C玩家D
分数100988561

这个数组在程序上就是这样写:
Socre[ 100, 98, 85, 61 ];

在人类语言的世界里,我们数数是从1开始的数。
表格第1个格子的数值是100
表格第2个格子的数值是98
表格第3个格子的数值是85
表格第4个格子的数值是61

但是,在计算机的世界里,数数是从0开始数的。
数组的第0个位置,是100
数组的第1个位置,是98
数组的第2个位置,是85
数组的第3个位置,是61

请问,这个表格 / 数组的大小是多少?
当然是4个啦..你数数看  [0, 1, 2, 3]

请问,这个数组的第2个位置的值是多少?
Sorce[2] = ?

是98吗?错!
正确答案应该是85

欢迎来到“从零开始的数组世界生活”




二维数组
概念:不仅有宽还有高。
Width, Height

上面的只有一列或者一行的表格,升级啦!
现在的样子才是真正的表格。

某个数值的坐标: (x, y)

这是一个二维数组:
宽度是6,高度是6
A
BCDEF
GHIJKL
MNOPQR
STUVWX
YZ0123
456789


这是一个二维数组:
宽度是7,高度是6


请问,在这个日历的二维数组中,位置(4, 5)的值是多少?

用JavaScript来演示的话:


如果把日历看成6行,7列的话。横着看,一共有6行

第0行是 [26, 27, 28, 29, 30,   1,   2],
第1行是 [  3,   4,   5,   6,   7,   8,   9],
第2行是 [10, 11, 12, 13, 14, 15, 16],
第3行是 [17, 18, 19, 20, 21, 22, 23],
第4行是 [24, 25, 26, 27, 28, 29, 30],
第5行是 [31,   1,   2,   3,  4,    5,   6]

找到了第4行,就竖着看列。一共有7列

第4行的第0列是 24
第4行的第1列是 25
第4行的第2列是 26
第4行的第3列是 27
第4行的第4列是 28
第4行的第5列是 29
第4行的第6列是 30

所以,这个数组
date[4][5] = 29


下一个问题,
请告诉我18在数组的哪个位置。

date[3][1] = 18



三维数组
概念:不仅有宽还有高,还多了深度
Width, Height, Depth

某个数值的坐标: (x, y, z)


用Excel来举例。
如果说,刚刚的日历是在Excel其中一张Sheet。

你问 Sheet 是什么?
看下面.....



你所看到的一张Sheet,是一个二维数组。
你可以轻松的通过坐标来找到一个位置。

比如,
横着看,在表格中是以字母的顺序来标记。
数着看,在表格中是以数字的顺序来标记。

举例,A1,C10,  F36, AT35等。

但在计算机的世界中,
是以(x, y)来标记坐标的。

横着看,是X轴,越往右,X越大。
竖着看,是Y轴,越往下,Y越大。

当然,也得看原点在哪,也就是以哪个地方为出发点。

相信在学校中,你们数学老师教过你们坐标系的概念 :)



X和Y知道了,现在,又多了一个Z轴是什么概念呢?
坐标变成了 (X, Y, Z)

刚刚拿EXCEL来举例,所以Z就是所在的Sheet表。

比如第一张表格的第A行第4列。
对应的坐标就是(A, 4, Sheet 1)


再换个例子,柜子
现在有A, B, C,三个柜子。
每个柜子有3行4列,共12个格子。





如果你把东西存在了A柜的第7号格子。
也就是第1个柜子,第3列第2行的第3个格子。

在计算机世界中,如果原点在左上角。
那它所在位置就是
X = 2 ,
Y = 1,  
Z = 0

记住,从零开始数数。


评分

参与人数 1星屑 +6 收起 理由
jhhuang + 6 数组是什么?

查看全部评分

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

2
发表于 2017-7-29 16:14:46 | 只看该作者
有列的吗。
不都是行吗。
【【】【】】也是同一行啊。
只是这样看的话,理解成列也可以拉。
不是还有【【【【】【】】】【【【】【】】】】
每个分支都可以再分支。树状图

点评

用个深度单位还贴切一点  发表于 2017-7-29 16:16
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2699
在线时间
1060 小时
注册时间
2015-11-1
帖子
271
3
发表于 2017-7-29 17:08:12 | 只看该作者
说起来,我听说多维数组是很消耗空间的。
我自己做游戏的时候,倒是用了很多3维数组,其中很多是没有装满的。

比如RM里面就没有用多维数组,而是另外定义了一个结构去存放地图数据。
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
270
在线时间
125 小时
注册时间
2009-12-16
帖子
155
4
发表于 2017-7-29 19:14:09 | 只看该作者
数组就是一种组,里面全是数,因此称为数组

点评

不不不,内存里都是数  发表于 2017-7-30 11:36
哈哈哈哈,也可以不是数  发表于 2017-7-29 21:25
⎝(゚∀。)⎠
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4598
在线时间
1206 小时
注册时间
2016-4-7
帖子
982

开拓者

5
发表于 2017-7-29 22:34:18 | 只看该作者
数组什么的不就是个阿贝尔群么(逃
附庸的附庸不是我的附庸,女儿的女儿还是我的女儿。CK2沉迷ing
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
8
星屑
4801
在线时间
1567 小时
注册时间
2014-1-9
帖子
402

开拓者

6
发表于 2017-7-29 22:47:51 | 只看该作者
自我感觉…数组什么的就是参数的组成吧…
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

7
发表于 2017-7-30 09:22:36 | 只看该作者
当一棵树不能满足你的时候,我们就需要一个树族

评分

参与人数 2星屑 +2 收起 理由
斜眼君 + 1 RB爆完换我爆
RyanBern + 1 我可以把你这一组树都爆了吗

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
3588
在线时间
3065 小时
注册时间
2011-11-17
帖子
980
8
发表于 2017-7-30 11:30:15 | 只看该作者
lua 是从1开始的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-1-1 13:41

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表