指针就是地址。把它当成一个地址就好

一级指针

void fun1(int a)
{
	a = 10;
}
int b = 0;
void fun2(int *a) //传入一个:int类型的指针,意思是传入一个地址。
{
	*a = 10; //解引用,将
    a = &b;
}
int x = 1;
fun1(x);//不会改变x的值
int *p = &x;//一但取址,返回的就是这个变量的地址,也就是对应的指针
fun2(p);//会将x的值变成10

二级指针(传入一个指针,改成另一个指针)

int x=0,y=1;
void func(int **a)
{
	*a = &y;
    **a = 10;//把y变成10
}
int *p = &y;      // p 指向 y
func(&p);         // 传入 p 的地址

func(int **a) 里的 a、*a、**a

表达式类型实际含义当前值
aint **p 的地址(即 &p)假设为 0x200
*aint *指针变量 p 本身&y(假设 0x100)
**aint最终指向的整数y 的值,即 1