1、多级指针
int i = 100;
int * num_p = &i;
int ** num_pp = &num_p;
printf("num_p的值是%p, num_pp的值是%p\n", num_p, num_pp);
printf("获取最终的值是%d\n",**num_pp);
2、数组与指针数据
int arr[] = {1,2,3,4};
int i = 0;
for(i = 0; i<4; ++i) {
printf("%d\n", arr[i]);
}
printf("arr = %p\n", arr)
printf("&arr = %p\n", &arr)
printf("&arr[0]= %p\n", &arr[0])
int * arr_p = arr;
printf("%d\n",*arr_p);
arr_p++;
printf("%d\n",*arr_p);
arr_p+= 2000;
printf("%d\n",*arr_p);
int ***arrPpp;
3、采用指针遍历数组
int arr[] = {1,2,3,4};
int * arr_p = arr;
int i = 0;
for(i = 0; i < 4; i++) {
printf("位置%d的值是:%d\n",i,*(arr_p + i));
}

4、循环时给数组赋值
int arr[4];
int * arrP = arr;
int j = 0;
for(j = 0; j< sizeof arr / sizeof(int); ++j) {
* (arrP + j) = (j + 10001);
printf("位置%d的值是:%d",i,*(arrP + j)
}
5、数组指针的操作的几种方式
int arr[] = {1,2,3,4};
int * arrp = arr;
for(int i = 0; i < 4; ++i){
printf("%d\n", arrp[i]);
printf("%d\n", *(arrp + i));
printf("%d\n", * arrp + i);
}
6、指针类型有何用?
int num = 12;
int * num_p = #
double * num_p_d = num_p;
printf("%d\n", sizeof num_p);
printf("%d\n", sizeof num_p_d );
7、函数指针。(回调)java接口的回调
void add(int num1, int num2) {
printf("num1 + num2 = %d\n", (num1 + num2))
}
void mins(int num1, int num2) {
printf("num1 - num2 = %d\n", (num1 - num2))
}
void opreate(void(*method)(int,int)) {
method(num1,num2);
}
int main(){
opreate(add, 10, 10):
opreate(mins, 20, 10);
}