为了加深印象,更好的理解二维数组,举个例子来消化
#include<stdio.h>
int main()
{
printf("\n输出二维数组的相关数据\n\n");
int a[3][4]={1,3,5,7,9,11,13,15,17,19,21,23};
printf("0行起始地址和0行0列元素地址:%d,%d\n",a,*a);
printf("0行0列元素地址:%d,%d\n",a[0],*(a+0));
printf("0行起始地址和0行0列元素地址:%d,%d\n",&a[0],&a[0][0]);
printf("1行0列元素地址和1行起始地址:%d,%d\n",a[1],a[1]);
printf("1行0列元素地址:%d,%d\n",&a[1][0],*(a+1)+0);
printf("2行0列元素地址:%d,%d\n",a[2],a+2);
printf("2行起始地址:%d,%d\n",&a[2],a+2);
printf("1行0列元素的值:%d,%d\n",a[1][0],*(*(a+1)+0));
printf("2行0列元素的值:%d,%d\n",*a[2],*(*(a+2)+0));
return 0;
}
运行结果如下:\n;
输出二维数组的相关数据
0行起始地址和0行0列元素地址:6422000,6422000
0行0列元素地址:6422000,6422000
0行起始地址和0行0列元素地址:6422000,6422000
1行0列元素地址和1行起始地址:6422016,6422016
1行0列元素地址:6422016,6422016
2行0列元素地址:6422032,6422032
2行起始地址:6422032,6422032
1行0列元素的值:9,9
2行0列元素的值:17,17
Process returned 0 (0x0) execution time : 0.007 s
Press any key to continue.