码迷,mamicode.com
首页 > 编程语言 > 详细

C语言--一维数组和多维数组数组名的含义

时间:2017-09-30 19:36:37      阅读:219      评论:0      收藏:0      [点我收藏+]

标签:应该   es2017   第一个   src   .com   一个   style   定义   内存   

一、一维数组

        对于一维数组,我们很容易理解数组名和元素地址的关系,即数组名代表数组首地址,亦即第一个元素的地址。

如定义数组int a[9]={1,2,3,4,5,6,7,8,9},则由上面的说明可得

a=&a[0],*a=a[0];

a+1=&a[1],*(a+1)=a[1];

.........

二、二维数组

       对于二维数组,我们一定要记住:它是数组的数组。如定义一个二维数组int b[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},此时我们知道,可以把b看做是一个有三个元素的数组,分别是b[0],b[1],b[2];每个元素(b[0],b[1],b[2])又都是有四个元素的一维数组。那么,此时的数组名代表什么呢?

       按照一维数组的思路去思考,b代表第一个元素的地址,那么这里的第一个元素应该是一维数组b[0];而b[0]又是一维数组的数组名,也就是说b[0]代表数组b[0]中的元素首地址。这样一来就可以得到:

b=*b=b[0]=&b[0][0],**b=*b[0]=b[0][0];

*b+1=b[0]+1=&b[0][1],*(*b+1)=*(b[0]+1)=b[0][1];

......

b+1=*(b+1)=b[1]=&b[1][0],**(b+1)=*b[1]=b[1][0];

*(b+1)+1=b[1]+1=&b[1][1],*(*(b+1)+1)=*(b[1]+1)=b[1][1];

......

用图示的方法为:

技术分享

在内存中,他们是一维排列的,如下图所示:

技术分享

 三、多维数组

对于多维数组的分析,和二维数组是一样的,始终记住:多维数组就是数组的数组。

C语言--一维数组和多维数组数组名的含义

标签:应该   es2017   第一个   src   .com   一个   style   定义   内存   

原文地址:http://www.cnblogs.com/pdf000/p/7615416.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!