#include <stdio.h>#include<string.h>#include<iostream>using namespacestd;#defineM 4#defineN 5intMain () {intm =4, n =5; Chararr[4][5] = { {'A','B','C','D','E'}, {'F','G','H','I','J'}, {'K','L','M','N','O'}, {'P','Q','R','S',' /'} }; Char(*a) [N];//A: pointerA =arr; printf ("%d\n",sizeof(a));//4----> Calculate pointer spaceprintf"%d\n",sizeof(a[0]));//5----> Compute array Spaceprintf"%s\n", a[1]);//FGHIJKLMNOPQRSprintf"%s\n", a[1] +3);//IJKLMNOPQRSprintf"%c\n", * (a[1]) +3);//I /*schematic diagram of-------------------------------------------------------------------------array pointer operation * (P[0]) * (p[0]) +3 | | || \ \/p or p[0]-----> A B C D E * (p[1]) * (p[1]) +3 || || \ \ p+1 or p[1]-----> F G H I J K L M N O P Q R S T------------------------------------------------------------------------------ --------------------------------*/ Char* B[n];//B: Array for(inti =0; I < m; i++) B[i]=Arr[i]; printf ("%d\n",sizeof(b));//----> Compute array Spaceprintf"%d\n",sizeof(b[0]));//4----> Calculate pointer spaceprintf"%s\n", b[1]);//FGHIJKLMNOPQRSprintf"%s\n", b[1] +3);//IJKLMNOPQRSprintf"%c\n", * (b[1]) +3);//I /*-------------------------------------------------------------------------Pointer array operation schematic * (P[0]) * (p[0]) +3 | | || \ \ p[0]-----> A B C D E * (p[1]) * (p[1]) +3 || || \ \ p[1]-----> F G H I J K L M N O P Q R S T----------------------------------------------------------------------------- ---------------------------------*/ Chararr2[6] = {'A','B','C','D','E',' /'}; Char*c =arr2; printf ("%s\n", c);//ABCDEprintf"%s\n", C +3);//DEprintf"%c\n", *c);//Aprintf"%c\n", c[3]);//Dprintf"%c\n", * (c+3));//D /*-------------------------------------------------------------------------Common pointer operation schematic *c * (c+3) | | || \ \/(c)-----> A B C (c+3)-----> D E------------------------------- -------------------------------------------------------------------------------*/ return 0;}
Use of array pointers/pointers arrays