为什么"可把二维数组看作是一种特殊的一维数组,即它的元素又是一个数组"?

"例如对于数组a[2][4],可看作是有2个元素的一位数组a[0]和a[1]"书上的原话,是什么意思?下一句话是"每个元素又是一个包含4个元素的一维数组.实际上,可以把n... "例如对于数组a[2][4],可看作是有2个元素的一位数组a[0]和a[1]"

书上的原话,是什么意思?
下一句话是
"每个元素又是一个包含4个元素的一维数组.实际上,可以把n维数组看作是由(n-1)维数组组成的一维数组"
这句话同样求解释
展开
 我来答
帐号已注销
推荐于2017-09-15 · 超过31用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:70.7万
展开全部

这个问题楼主首先要知道,内存的存储机制是线性的,没有我们想象的那种二维或者三维的,并且数组中实际上仅仅只有以为数组这种数据类型,只不过这数组的元素可以使任意类型,当然包括数组,这样子就构成了多维数组。

你可以看看这张图:

这样子就可以清楚地看出内存存储数据的格式了,当然为什么可把二维数组看作是一种特殊的一维数组也解决啦!!

tony_sgt
推荐于2017-09-12 · TA获得超过8422个赞
知道大有可为答主
回答量:5330
采纳率:66%
帮助的人:1185万
展开全部
二维数组a由若干个一维数组组成在C语言中定义的二维数组实际上是一个一维数组,这个一维数组的每一个成员又是一个一维数组。如以上定义的a数组,则可视a数组由a[0]、a[1]、a[2]等三个元素组成,而a[0]、a[1]、a[2]等每个元素又分别是由4个整型元素组成的一维数组。可用a[0][0]、a[0][1]等来引用a[0]中的每个元素,其它依次类推。
C语言中,在函数体中或在函数外部定义的一维数组名是一个地址常量,其值为数组第一个元素的地址,此地址的基类型就是数组元素的类型。在以上二维数组中,a[0]、a[1]、a[2]都是一维数组名,同样也代表一个不可变的地址变量,其值依次为二维数组每行第一个元素的地址,其基类型就是数组元素的类型。

二维数组名也是一个地址常量二维数组名同样也是一个存放地址常量的指针,其值为二维数组中第一个元素的地址。以上a数组,数组名a的值与a[0]的值相同,只是其基类型为具有4个整型元素的数组类型。即a+0的值与a[0]的值相同,a+1的值与a[1]的值相同,a+2的值与a[2]的值相同,它们分别表示a数组中第零、第一、第二行的首地址。二维数组名应理解为一个行指针。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式