标签:
这个是数组指针、指针数组、二维数组之间相互转换的代码
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])\n"); 17 printf("(*d)[0]:%d\n(*(d+1)[1]):%d\n**d:%d\n*(*d+1):%d\n*(*(d+1)+1):%d\n",(*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)\n"); 22 printf("a[1][2]:%d\n",a[1][2]); 23 printf("*b:%d\n",*b); 24 printf("*(*a+1):%d\n*(*(a+1)):%d\n*(a[0]):%d\n**a:%d\n",*(a[0]+1),**(a+1),*(a[0]),* 25 *a); 26 printf("*(*(a+1)+1):%d\n*(*(a)+2):%d\n*(a[0]+1):%d\n",*(*(a+1)+1),*(*(a)+2),*(a[0]+ 27 2)); 28 printf("about *e[0]"); 29 printf("*e[0]:%d\n",*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
标签:
原文地址:http://www.cnblogs.com/qiuheng/p/5756979.html