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

同一、一维数组

       
对于一维数组,我们那个爱懂往往组名和要素地址之涉,即数组名代表数组首地址,亦即首先只元素的地方。

一旦定义数组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语言 1

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

C语言 2

 三、多维数组

对于多维数组的辨析,和二维数组是同等的,始终牢记:大抵维数组就是累组的数组。