在讨论数组时,“维度”是什么意思?“

时间:2011-12-04 15:12:01

标签: c arrays

在讨论数组时,“维度”是什么意思?

我理解这个想法。但是答案是什么呢?

例如,int array[5];我知道,这是一维数组。它在索引中有1个下标。但为什么它被称为1维数组呢?为什么不是1个下标数组?

5 个答案:

答案 0 :(得分:9)

我们说“维度”,因为这是这类事情的总称。想想我们的世界,例如:它有三个容易观察的尺寸(宽度,高度,深度)。或者想到几何:一个点有零维度,一个线有一个,一个平面有两个,一个立方体有三个等等。这个术语适用于数组,因为它精确地描述了与数组相关的东西。数组的维数是它有多少轴。

一维数组有一个轴,如一行:

XXXXXXXX

使用一个下标对其进行索引,例如: array[n]

二维数组有两个轴,如平面:

XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX

您使用两个下标对其进行索引,例如: array[x,y]

我不会尝试使用ASCII艺术来表示3维数组(如立方体)。 : - )

答案 1 :(得分:4)

“数组的维度”是指定数组的单个元素所需的索引或下标数。

尺寸和下标可能令人困惑。下标是数字(或其他类型的关联键),而维度是可接受键范围的描述;你需要为数组的每个维度提供一个下标。

例如,在C / C ++中,a[10][5]是一个具有两个维度的数组:大小为10且大小为5.您需要两个下标或键来处理其元素。一个下标必须在0到9之间,包括0和9;另一个下标介于0和4之间。

答案 2 :(得分:1)

最简单的思考方式是数组的维度是类型后面的方括号的数量:

int []是单维数组,int [] []是2维数组,等等。

有时,如果您将数组视为多维绘制图形,则会很有帮助。 1-d阵列只是一条线,在图中有1个轴。 2-d数组是一个表,如果要绘制它(x,y),它有两个轴。 3d数组是一个立方体,有3轴(x,y,z)。

答案 3 :(得分:1)

尺寸几乎以相同的方式应用于数组,因为它不是笛卡尔坐标系。尺寸表示阵列可以生长多少轴。实施例

int A[5]  is one dimentional, all elements are access by one index
int A[5][5] is two dimentional. Element are aligned along x and y plane.
int A[5][5][5] is three diminutional, elements are aligned in 3D space.

随着3D的成长,视觉变得困难。一个4d阵列就像这样

int A[5][5][5][5]

这基本上意味着它可以在4个方向上生长。它可以显示为

[5][5][5]  [5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5]

[5][5][5]  [5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5]

[5][5][5]  [5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5]

[5][5][5]  [5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5]

[5][5][5]  [5][5][5] [5][5][5] [5][5][5] [5][5][5] [5][5][5]

是3D阵列A [5] [5] [5]的5个元素。在上面的例子中,它只是A [0] [5] [5] [5]

的第0个元素

答案 4 :(得分:0)

多维数组也允许其成员成为数组。例如:

a = [1,2,3]; //单维数组 b = [7,8,9]; //单维数组

c = [a,b]; //多维(二维)数组。数组数组。

所以现在c [0]被赋予数组a作为其元素,而c [1]是b。可以处理多维数组的成员,例如:

c [0] [0](在这种情况下为[0],或1 ... c [1] [2](在这种情况下为b [2],或9 ...