(一)指针的定义
一级指针:是一个指针变量,指向一个普通变量,并保存该普通变量的地址;
二级指针:是一个指针变量,指向一个一级指针,并保存该一级指针的地址;
(二)二级指针
概念:用来存放一级指针地址的指针 ,也就是指向指针的指针;
理解:指针一般指一级指针,一级指针变量用来存放普通变量的地址;每个变量都有自己本身所对应的地址,一级指针也有自己的地址,我们便用二级指针变量来存储一级指针的地址;
#include <stdio.h>
int main(int argc, const char* argv[])
{
int a = 10;
int* p = &a;
int** q = &p;
**q = 1314;
printf("a = %d *p = %d **q = %d\n", a, *p, **q);
printf("&a = %p, p = %p, *q = %p\n", &a, p, *q);
printf("&p = %p, q = %p\n", &p, q);
return 0;
}
注意:
不能使用一级指针保存一级指针的地址
int* temp = &p;
printf("temp = %p, &p = %p\n", temp, &p); // 保存是可以的
**temp = 520; //error 但是,一级指针不能取 ** 操作