linux编程之指针

  这个是数组指针、指针数组、二维数组之间相互转换的代码 

 1  #include<stdio.h>
 2  void main()
 3          {
 4           int a[2][4]={1,2,3,4,5,6,7,8};
 5           int *b=NULL;
 6           int **c;
 7           int (*d)[4];
 8  
 9           int * e[5];
10           b=*(a+1)+1;
11           e[0]=&a[0][0];
12           d=a;
13           //a[][] equal **c equal (*d)[]
14  
15          //about (*d)[4] **d
16           printf("about (*d)[4] **d (*(d+1)[1])
");
17           printf("(*d)[0]:%d
(*(d+1)[1]):%d
**d:%d
*(*d+1):%d
*(*(d+1)+1):%d
",(*d)[0],(
18     *(d+1))[1],**d,*(*d+1),*(*(d+1)+1));
19  
20           //about *(a[0]+1) **(a+1) *(*(a+1)+1) !!!!!
21           printf("about *(a[0]+1) **(a+1) *(*(a+1)+1)
");
22           printf("a[1][2]:%d
",a[1][2]);
23           printf("*b:%d
",*b);
24           printf("*(*a+1):%d
*(*(a+1)):%d
*(a[0]):%d
**a:%d
",*(a[0]+1),**(a+1),*(a[0]),*
25     *a);
26           printf("*(*(a+1)+1):%d
*(*(a)+2):%d
*(a[0]+1):%d
",*(*(a+1)+1),*(*(a)+2),*(a[0]+
27     2));
28           printf("about *e[0]");
29           printf("*e[0]:%d
",*e[0]);
30  }

  输出结果

 1 about (*d)[4] **d (*(d+1)[1])
 2 (*d)[0]:1
 3 (*(d+1)[1]):6
 4 **d:1
 5 *(*d+1):2
 6 *(*(d+1)+1):6
 7 about *(a[0]+1) **(a+1) *(*(a+1)+1)
 8 a[1][2]:7
 9 *b:6
10 *(*a+1):2
11 *(*(a+1)):5
12 *(a[0]):1
13 **a:1
14 *(*(a+1)+1):6
15 *(*(a)+2):3
16 *(a[0]+1):3
17 about *e[0]*e[0]:1
原文地址:https://www.cnblogs.com/qiuheng/p/5756979.html