1、 0行首地址:a,&a[0]。 首先大家都知道,数组名就代釉涑杵抑表数组的首地址,所以a就是二维数组的首地址,也就是二维数组的0行首地址; 同时二计茄妙蜷维数组也可以看做一个一维数组a[0]、a[1]、a[2];每个一维数组中有嵌套一个一维数组a[0]、a[1]、a[2],所以&a[0]就是0行首地址。
2、 1行首地址:a+1,&a[1];同上,理解0行首地址的应该一目了然。
3、 0行0列元素地址:&a[0][0],a[0],*(a+0),*a; 第一个&锾攒揉敫a[0][0]是最容易理解的,学数组的时候就是用这种方法表示的; 0行元素是a[0][0]、a[0][1]、a[0][2],a[0]相当于行数组的数组名,表示行数组的首地址,即0行0列地址; *(a+0)和*a是完全一样的,只不过为了指针的移动性质表现地更清楚;a是0行首地址,*a访问到的是0行0列地址;
4、 1行0列元素地址:&a[1][0],a[1],*(a+1); 只需要把上述的0行,换成一行,就可以得到;
5、 2行2列元素地址:&a[2][2],a[2]+2,*(a+2)+2; a[2]+3,a[2]是2行0列地址,之前忘了说一个重要概念,指针就是地址,地址就是指针;关于指针的移动,可以直接使用加减让指针移动。a[2]+2就是2行2列地址,这是下标法,如果用指针法表示就是*(a+2)+2;
6、 2行2列元素值:a[2][2],*(a[2]+2),*(*(a+2)+2); 对2行2列元素地址间接访问就是*(a[2]+2),*(*(a+2)+2),直接访问就是a[2][2];