立即学习:https://edu.csdn/course/play/10534/378151?utm_source=blogtoedu

学习目标
二级指针的含义。
二级指针的使用。
多级指针的含义。
多级指针使用。

二级指针
定义:
下面定义的是一个int类型的二级指针:
int a = 10;
int *p = &a;   // 指向int变量
int **q = &p;  // 类型却别
第一个*和第二个*有什么区别吗?
怎么理解它?
简单的理解就是指向指针的指针。
使用:
定义一个函数,函数有一个指针参数,我们希望通过函数修改指针的地址,让他指向新的变量。
#include <stdio.h>

// 是值传递
void fun(int **p, int *b) {
	// p局部有效,出了这个函数就无效。
	*p = b;
}

int main(int argc, char* argv[]) {
	int a = 10;
	int b = 20;
	int *p = &a;
	
	// 通过这个调用,是指针P指向变量b
	printf("*p = %d, should is 10.\n", *p);
	fun(&p, &b);
	printf("*p = %d, should is 20.\n", *p);

    return 0;
}

多级指针
int a = 10;
int *p1 = &a;
int **p2 = &p1;
int ***p3 = &p2;

// 越级指向,是警告,通过强制类型转换可以消除警告。
int ***p31 = (int***)&p1;

 

更多推荐

学习笔记(66):C语言入门到精通-多级指针