1:以a[4][3]为例
a代表二维数组的地址,通过指针运算符可以获取数组中的元素
(1)a+n代表第n行的首地址
(2)&a[0][0]既可以看作第0行0列的首地址,同样也可以被看作是二维数组的首地址。&a[m][n]就是第m行n列元素的地址
(3)&a[0]是第0行的首地址,当然&a[n]就是第n行的首地址
(4)a[0]+(n-1)表示第0行第n个元素
(5)*(*(a+n)+m)表示第n行第m列
(6)*(a[n]+m)表示第n行第m列元素
2:代码如下:
// 6.12.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<iostream> using namespace std; void main() { int i,j; int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; cout << "the array is: " << endl; for(i=0;i<4;i++) //行 { for(j=0;j<3;j++) //列 cout <<*(*(a+i)+j) << endl; } }
运行结果: