找回密码
 加入
搜索
查看: 8681|回复: 10

[AU3基础] 二维数组的读取问题不是很明白

  [复制链接]
发表于 2010-7-3 16:45:39 | 显示全部楼层 |阅读模式
有给大家添麻烦了。。
运行一个函数 后 该函数会 返回一个 二维数组。。
怎么读取这个 函数返回的 二维数组呢?
搜索里 看的不是很明白。。。
发表于 2010-7-3 16:55:24 | 显示全部楼层
譬如有20个美女给你选,她们站成2排(二维),每排10个,即:
$mm[2][10]
假如你选中第1排的第6个,即:
$likemm=$mm[1][6]
msgbox(0,"","选择的美女是:" & $likemm)
 楼主| 发表于 2010-7-3 16:58:29 | 显示全部楼层
你的比喻太强悍了。。。
 楼主| 发表于 2010-7-3 17:24:28 | 显示全部楼层
呵呵 我的意思 是 这个 返回的 二维数组我不清楚 从 几开始 有几个元素。。(不知道我理解的对不)。
我怎么判断 他从几开始的 里边都有 那些 元素呢。
给个简单的例子。。比如 运行$ss=_erwei($1,$2,$3,$4)这个函数后会返回一个 二维数组。
我想知道这个二维数组 如何 去读取。
发表于 2010-7-3 17:42:21 | 显示全部楼层
本帖最后由 ferelove 于 2010-7-3 17:48 编辑

一般情况下,[0][0]即是总数。
参考\UserInclude\ACN_NET.au3的_NetworkAdapterInfo()函数的开始注释部分,很容易理解。

或者http://www.autoitx.com/forum.php ... tid=2285&page=1
第七章第二节
发表于 2010-7-3 23:42:45 | 显示全部楼层
回复 2# ferelove

哈哈,比喻得相当的好!
发表于 2010-7-4 03:33:27 | 显示全部楼层
本帖最后由 afan 于 2010-7-4 03:38 编辑
;选2楼提供的小姐中的9位极品做示例(其中3位比较彪悍),来解释变量及数组

#include <Array.au3>
;比如这9位小姐,胸牌号分别为1~9,每一位有单独的座位,用非数组变量就是
Dim $1 = 1, $2 = 2, $3 = 3, $4 = 4, $5 = 5, $6 = 6, $7 = 7, $8 = 8, $9 = 9
;如果要胸牌号为5的,那就是:
msgbox(0, '非数组变量的5号:$5', $5)

;如果她们站在走廊上,可以站成1列,那可以用1维数组变量表示
Dim $1d[9] = [1,2,3,4,5,6,7,8,9]
;用_ArrayDisplay函数可以直观的查看
_ArrayDisplay($1d, '1维数组变量')
;如果要胸牌号为5的,那就是:
msgbox(0, '1维数组变量的5号:$1d[4]', $1d[4]) ;中括号内的下标是从0开始计算

;如果她们站在房间里,可以站成两列,每列最多5个人,位置如下:
;        1        6
;        2        7
;        3        8
;        4        9
;        5

;这时可以用2维数组变量表示她们各自对应的位置
Dim $2d[5][2] = [[1,6],[2,7],[3,8],[4,9],[5]]
;用_ArrayDisplay函数可以直观的查看
_ArrayDisplay($2d, '2维数组变量')

;当然你也可以这样写:
Dim $2d[5][2]
$2d[0][0] = 1
$2d[1][0] = 2
$2d[2][0] = 3
$2d[3][0] = 4
$2d[4][0] = 5
$2d[0][1] = 6
$2d[1][1] = 7
$2d[2][1] = 8
$2d[3][1] = 9
;用_ArrayDisplay函数可以直观的查看,结果和上面的一样
_ArrayDisplay($2d, '2维数组变量')

;如果要胸牌号为5的,那就是:第1列的第5个,数组中下标都是从0开始计算的,也就是第[0]列的第[4]个
msgbox(0, '2维数组变量的5号:$2d[4][0]', $2d[4][0])
;如果要胸牌号为9的,那就是:第2列的第4个(即第[1]列的第[3]个)
msgbox(0, '2维数组变量的9号:$2d[3][1]', $2d[3][1])


;再来个难度较高的。如果房间太小,但是很高,只允许她们每列最多3个人,站成2列,那另外三个就只能站(或蹲或趴)在其中三个(彪悍)的头上了,也就是还有个第2层。
;位置如下(括号里的就是站在头上的):
;        1(7)        4
;        2(8)        5
;        3        6(9)

;这时就可以用3维数组来表示她们各自对应的位置
Dim $3d[3][2][2] = [[[1,7],[4]],[[2,8],[5]],[[3],[6,9]]]
msgbox(0, '5号位置:$3d[1][1][0]', $3d[1][1][0]) ;第2个,第2列,第1层
msgbox(0, '9号位置:$3d[2][1][1]', $3d[2][1][1]) ;第3个,第2列,第2层
回复 4# woeiwoei
现在,你应该知道如何读取了吧~~
发表于 2010-7-4 08:45:29 | 显示全部楼层
新手!!学习了!谢谢!!
发表于 2010-7-4 10:24:50 | 显示全部楼层
人才啊
发表于 2020-5-21 18:04:15 | 显示全部楼层
看了A版的解说,总算明白了二维、三维数组是怎么回事!
发表于 2020-5-21 19:43:38 | 显示全部楼层
看到了十年前的自己,有点穿越之感…  还有点蛋蛋的忧伤
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-2 06:44 , Processed in 0.084998 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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