## 数组指针 顾名思义,就是指向数组的指针。 每个元素是一个一维数组 ``` int a[3] = {1,2,3}; int(* p)[n] = { }; *p[0] = &a; printf("%d",*p[0][0]);//输出1,即a[0] ``` ## 指针数组 数组每个元素都是指针 ``` int a = 1, b = 2; int *p[n] = { }; *p[0] = &a; *p[1] = &b; printf("%d",*p[0]);//输出1,即a printf("%d",*p[0]);//输出2,即b ``` ## 指向数组的指针 直接指向数组 ``` int a[3] = {1,2,3}; int *p = &a; printf("%d",*p]);//输出1,即a[0] printf("%d",*p[1]);//输出2,即a[1] printf("%d",*p+1);//输出2,即a[1] ``` ## 指向指针的指针 直接指向数组 ``` int a = 1; int *p1 = &a; int **p2 = &p1; printf("%p %p %p",a,p1,p2);//a,p1,p2自己地址 printf("%p %p %p",*p1,*p2,**p2);//输出a的地址,p1的地址,a的地址 ``` Loading... ## 数组指针 顾名思义,就是指向数组的指针。 每个元素是一个一维数组 ``` int a[3] = {1,2,3}; int(* p)[n] = { }; *p[0] = &a; printf("%d",*p[0][0]);//输出1,即a[0] ``` ## 指针数组 数组每个元素都是指针 ``` int a = 1, b = 2; int *p[n] = { }; *p[0] = &a; *p[1] = &b; printf("%d",*p[0]);//输出1,即a printf("%d",*p[0]);//输出2,即b ``` ## 指向数组的指针 直接指向数组 ``` int a[3] = {1,2,3}; int *p = &a; printf("%d",*p]);//输出1,即a[0] printf("%d",*p[1]);//输出2,即a[1] printf("%d",*p+1);//输出2,即a[1] ``` ## 指向指针的指针 直接指向数组 ``` int a = 1; int *p1 = &a; int **p2 = &p1; printf("%p %p %p",a,p1,p2);//a,p1,p2自己地址 printf("%p %p %p",*p1,*p2,**p2);//输出a的地址,p1的地址,a的地址 ``` Last modification:November 24, 2022 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏