二级指针
首先,我们先以一个简单的例子回顾一级指针的知识指针基本介绍
- 定义 int a=3;
- 计算机给我们开辟了一个内存空间,里面放入3这个整数,这个内存空间的地址是&a;
- 定义指针int *p=&a;
- 计算机给我们开辟了一个内存空间,里面放入&a,这个内存空间的地址是&p;
- 我们可以通过*p来访问a的值,*p的意思是取出指针p指向的变量a的值;
- 注意定义时候的*p 和定义后使用 *p的区别;
- 定义普通变量时,开辟的内存空间,里面存放的是一个普通的数值;
- 定义指针变量时,开辟的内存空间,里面存放的是一个地址;
现在我们引入二级指针:
首先定义一个二级指针:int **p1;
这和我们定义一级指针一样,计算机也会给我们开辟一个内存空间,它的地址也是通过&p1查看。
按照我们之前的逻辑,* p存放的是普通变量的地址,那**p存放的是什么?没错,就是比它低一级指针的地址,也就是*p的地址。
和前面一样,赋值就这么写:p1=&p;
这时候我们的二级指针就指向一级指针了!
同样,我们可以想一下,三级指针是不是存放的是二级指针的地址?n级指针是不是存放的是n-1级指