多級指針就是指向指針的指針。
#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,可以達到相同的效果。