定义“int a[3][3]”,若a[0][0]的地址为2000,则数组中各元素的地址如下图所示:
二维数组的各个元素在内存中是按行连续存放的,存放方式与一维数组并无区别。
行地址:
即a被看做由a[0]、 a[1] 和a[2]组成。
其中:
•
a
指向
a[0]
•
a+1
指向
a[1]
•
a+2
指向
a[2]
a+1=a+3*4=2012
a、a+1及a+2所表示的地址,被称为行地址 。行地址就是指向二维数组每一行(一维数组)的地址。
表示形式 | 含 义 | 类 型 |
a | 指向一维数组a[0],即0行首地址 | 行地址 |
a+1 &a[1] | 第1行的首地址 | 行地址 |
*(a+1) a[1] &a[1][0] | 第1行第0列元素a[1][0]的地址 | 列地址 |
*(a+1)+2 a[1]+2 &a[1][0]+2 | 第1行第2列元素a[1][2]的地址 | 列地址 |
行地址前加“*”将变为列地址,列地址前加“&”将变为行地址。例如,a为行地址,*a为列地址,a[0]为列地址,&a[0]为行地址。只能在“列地址”前加“*”才能获得一个具体元素的值。