多级指针就是指向指针的指针。
#include <stdio.h>//标准头文件
#include <malloc.h>//动态内存的头文件
mulPoint(int** q){//定义一个指向指针的指针q,用来修改指针p的值
*q = (int*)malloc(sizeof(int));//申请一个整型变量的空间,将地址赋给q地址所指向的值,即p
**q = 5;//将刚申请的整型变变量的空间中赋值为5,从而p指针所指向的空间的值为5,即*p=5;
}
int main(void){
int *p=0;
mulPoint(&p);//将指针变量p的地址传递给mulPoint函数。由于p为指向整型的指针,所以p的地址应该是int**类型。
printf("p指向的值为:%d",*p);//输出p指针指向空间的值
}
其中动态内存不过是为了学习变量的跨函数实用,可以定义全局变量,把全局变量的地址赋值给*q,可以达到相同的效果。