1 #include<stdio.h>
2
3 int main(void)
4 {
5 int ar[3][4]= { {7,10,-2,3},
6 {14,30,6,-15},
7 {0,5,27,-7}
8 };
9 int num;
10 int i,j;
11 int k = 0,sum=0;
12 int (*ptr)[4];
13 ptr = ar;
14 num = sizeof(ar) / sizeof(ar[0]);
15 printf("num = %d\n",num);
16 printf("%d\n",*(*(ptr +0) + 1));
17 for(i = 0; i < 3 ;i++)
18 {
19 for(j = 0 ;j < 4; j++)
20 {
k += *(*(ptr + i)+j);
22 //sum += k;
23
24 }
25 }
26 printf("%d\n",k);
27 return 0;
28 }
小结 二维指针数组定义 int(* ptr)[4] 与一维指针定义int *p 不一样 。 取出每个二维数组里面内容 *(*(ptr + i) + j)
2
3 int main(void)
4 {
5 int ar[3][4]= { {7,10,-2,3},
6 {14,30,6,-15},
7 {0,5,27,-7}
8 };
9 int num;
10 int i,j;
11 int k = 0,sum=0;
12 int (*ptr)[4];
13 ptr = ar;
14 num = sizeof(ar) / sizeof(ar[0]);
15 printf("num = %d\n",num);
16 printf("%d\n",*(*(ptr +0) + 1));
17 for(i = 0; i < 3 ;i++)
18 {
19 for(j = 0 ;j < 4; j++)
20 {
k += *(*(ptr + i)+j);
22 //sum += k;
23
24 }
25 }
26 printf("%d\n",k);
27 return 0;
28 }
小结 二维指针数组定义 int(* ptr)[4] 与一维指针定义int *p 不一样 。 取出每个二维数组里面内容 *(*(ptr + i) + j)