指针是一个变量,变量的值是内存地址。
int a = 10;
/**
* 指针类型为 int*
* 指针指向类型 int
* 打印(a)会输出10
* 打印(&a)会输出变量a所在的内存地址
* 打印(*q)会输出变量a的值的内存地址
* 打印(q)会输出指针q指向的内存地址
*/
int *q = &a;
/**
* 指针类型为 int*
* 指针指向类型 int
* 打印(*p)会输出10
* 打印(p)会输出指针p指向的内存地址
* 打印(&p)会输出存储p指向内存地址的内存地址,
* 因为指针也是变量,需要保存到内存,所以指针也有内存地址
*/
int *p = 10;
/**
* 指向指针的指针
* 打印(**r)输出10
* 假设z = (*r),(**r)可以看作(*z),打印(*z)输出10,
* 打印(*r)输出一个内存地址x,[等价于打印(z)]
* 打印(r)会输出内存地址x的内存地址
*/
int **r = 10;