#include <stdio.h>intMain1 (void){ intA =3; intb =8; int*p = &a;//int* p = &a; int**q;//int** Q;Q = &Q; **q =Ten; *q = &b; **q =5; P= &b; *p =9; printf ("a =%D\TB =%d\n", A, b); return 0;}//void Fun (char *arr[], int n)voidFunChar**arr,intN//equivalent to a pointer array when a double pointer is passed{ inti; for(i =0; I < n; i++) printf ("%s\n", Arr[i]); //printf ("%s\n", * (Arr+i)); //to index an element as a double pointer}intMainvoid){ Char*s[3] = {"Hello"," World","xwp"}; Fun (S,3); return 0;}
#include <stdio.h>intMain1 (void){ inta[Ten] = {1,2,3,4,5,6,7,8,9,0}; //int *p; int(*p) [Ten];//first parentheses, p and * combine, are pointer types, pointers to arrays with 10 elements of type int//p = A; int *p; p = A; A + 1p = &a;//Int (*p) [Ten] = &a; &a + 1 p+1 plus 40 bytesprintf ("%d\t%d\n",sizeof(p),sizeof(*p)); printf ("%d\n", (*P) [3]); return 0;}intMain2 (void){ /*char str[3][20] = {"Hello", "World", "Itcast"}; char (*P) [20]; p = &str[0]; printf ("%s\n", * (p+1)); *//*char str[3][20] = {"Hello", "World", "Itcast"}; Char *p; p = str[0]; printf ("%s\n", p); printf ("%s\n", (p+20)); */ Charstr[3][ -] = {"Hello"," World","Itcast"}; Char(*p) [ -]; P=str; printf ("%s\n", * (p+1)); return 0;}//void Fun (char a[][20], int n)//array pointers are equivalent to two-dimensional arrays when passing parametersvoidFunChar(*a) [ -],intN) { inti; for(i =0; I < n; i++) scanf ("%s", A[i]); return;}intMainvoid){ inti; Chars[3][ -]; Fun (S,3); for(i =0; I <3; i++) printf ("%s\n", S[i]); return 0;}
C Foundation--double pointers and array pointers