用指针实现对二维数组元素的访问

  在C语言中,多维数组实际上是数组的数组,二维数组就是每个元素都是一个一维数组的一维数组。

  例如a[3][4];

  定义了一个3行4列的二维数组,可以将a看成是有a[0]、a[1]、a[2]三个元素组成的一维数组,而每个元素a[i]都是一个有4个整形元素的数组。

  

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     int i, j, a[4][3] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}}, *p;
 6     p = &a[0][0];
 7     for(i = 0; i < 4; i++){
 8         for(j = 0; j < 3; j++)
 9             printf("%-3d", *(*(a+i) + j));
10         printf("\n");
11     }
12     printf("\n");
13 
14     for(i = 0; i < 4; i++){
15         for(j = 0; j < 3; j++)
16             printf("%-3d", *(p + i*3 + j));
17         printf("\n");
18     }
19     printf("\n");
20 
21     for(i = 0; i < 12; i++, p++)
22         printf("%-3d", *p);
23     printf("\n");
24     return 0;
25 }

 

posted @ 2017-06-27 13:53  Been_You1997  阅读(842)  评论(0编辑  收藏  举报