This is the code that converts the array pointer, array of pointers, and the two-dimensional array to each other.
1#include <stdio.h>2 voidMain ()3 {4 inta[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];Tenb=* (A +1)+1; Onee[0]=&a[0][0]; AD=A; - //a[][] Equal **c equal (*D) [] - the //About (*D) [4] **d -printf"About (*D) [4] **d (* (d+1) [1]) \ n"); -printf"(*d) [0]:%d\n (* (d+1) [1]):%d\n**d:%d\n* (*d+1):%d\n* (* (d+1) +1):%d\n", (*D) [0],( -* (d+1))[1],**d,* (*d+1), * (* (d+1)+1)); + - //About * (a[0]+1) * * (a+1) * (* (A+1) +1)!!!!! +printf"About * (a[0]+1) * * (a+1) * (* (a+1) +1) \ n"); Aprintf"a[1][2]:%d\n", a[1][2]); atprintf"*b:%d\n",*b); -printf"* (*a+1):%d\n* (* (a+1)):%d\n* (A[0]):%d\n**a:%d\n", * (a[0]+1), * * (A +1), * (a[0]),* -*a); -printf"* (* (a+1) +1):%d\n* (* (a) +2):%d\n* (a[0]+1):%d\n", * (* (A +1)+1), * (* (a) +2), * (a[0]+ - 2)); -printf"About *e[0]"); inprintf"*e[0]:%d\n", *e[0]); -}
Output results
1About (*D) [4] **d (* (d+1)[1])2(*d) [0]:13(* (d+1)[1]):64**d:15* (*d+1):26* (* (d+1)+1):67About * (a[0]+1) * * (A +1) * (* (A +1)+1)8a[1][2]:79*b:6Ten* (*a+1):2 One* (* (A +1)):5 A* (a[0]):1 -**a:1 -* (* (A +1)+1):6 the* (* (a) +2):3 -* (a[0]+1):3 -About *e[0]*e[0]:1
The Pointers to Linux programming