话说,“数组的维数”到底是指什么?
我今天才知道,它好像是指数组的size?
为什么要翻译成这么容易引起误解的词呢?
[解决办法]
dimension这个词我们一般翻译成“维度”,但在这个上下文,实际是“尺寸”。
至于我们常说的“一维”数组,“二维”数组,在个人看来是国人(包括我自己)为了方便理解,而自行产生的概念;而稍微好点的国外书籍(比如C++ Primer),是没这个说法的。
最后的真相就是,我们所谓的“多维”数组,就是我们所谓的“一维”数组的递归定义。
而我们所谓的“一维”数组的定义就是:
An array definition consists of a type specifier, an identifier, and a dimension. The dimension, which specifies the number of elements contained in the array, is enclosed in a bracket pair.
即:
数组的定义由类型说明符,标识符,和尺寸组成。
尺寸指明了数组容纳的元素的个数,(它)包在方括号([])中。
能想通递归定义,才是正道,我们所谓的“多维”数组,不过就是数组,它的元素又是数组;在这个层面上,我们所谓的“维数”只是为了方便理解,对递归做的一种“简化”。
[解决办法]
An array definition consists of a type specifier, an identifier, and a dimension. The dimension, which specifies the number of elements contained in the array, is enclosed in a bracket pair.
我来翻译下,
一个数组的定义由一个类型,一个数组名,一个长度组成。长度,用来指定数组的中包含的元素个数,括在一个中括号中。
这个dimension可以表示长度也可以是维度。此段的上下文应该是长度的意思。
这好比汉语中:
那太监对陆三金说“我是你大爷……”,此时他不是在骂人一样。
但是我们不能问仓颉,为什么不把大爷表示成“我是你爸爸的哥哥”,这样就没有歧义了……