目录
一.什么是指向指针的指针
二.扩展
三.视频教程
一.什么是指向指针的指针
我们先看回顾一下指针:
#include <stdio.h>int main(void)
{int a = 100;int *p = &a;printf("*p is %d\n",*p);return 0;}
解析:
所以printf输出的结果是100。
往下思考:
指针变量也是变量,也有自己的地址。对指针变量p取地址(&p)就可以拿到指针变量p的地址。在讲指针的时候我们说指针变量存放的是地址(普通变量的地址),只不过用来存放指针变量的地址的指针叫做指向指针的指针,也叫做二级指针(用来存储指针变量的地址)。
二级指针语法格式:
数据类型 **变量名 = 指针变量地址;
接下来对这个例子进行修改:
#include <stdio.h>int main(void)
{int a = 100;int *p = &a;int **pp = &p;printf("p is %p\n",p);printf("*pp is %p\n",*pp);printf("**pp is %d\n",**pp);return 0;}
输出结果:
解析:
二.扩展
1.定义指针变量的时候有几个*就是几级指针。
2.理论上可以实现多级指针(无线套娃),但是为了代码的可读性,一般套娃到二级指针就可以了。
三.视频教程
59.指向指针的指针(二级指针)_哔哩哔哩_bilibili