@TOC


前言

前面我们学习了一级指针操作变量,那什么是二级指针?二级指针又如何操作变量呢?


一、二级指针的声明定义:

二级指针定义:

  1. int a = 12; / / a变量有自己的空间地址,假设为 0x10, 里面装 12
  2. int *p = &a; / / p变量有自己的空间地址,假设为 0x20, 里面装 0x10
  3. int **pp = &p; / / pp变量有自己的空间地址,假设为 0x30, 里面装 0x20

注意点: pp 就是二级指针变量,用来装1指针的地址。 int ** 就是二级指针类型,int *是一级指针类型。 同理: int ***是三级指针类型,装二级指针地址,&pp。 int **** 是四级指针类型,装三级指针地址。 平时顶多用到2级,本质都是一样的。

二、二级指针的使用:

C语言,二级指针_二级

计算规则:

  1. *+空间的地址,就是该空间本身。
  2. *+ 空间的地址,就是该空间本身。 推导d: p == &a; *p == *&a; pp == &p; *pp == *&p ==p; ** pp ==*p == a; 所以:**ppa 是一模一样的。

总结

这部分内容要自己好好理解,自己推导一下公式,有些难度。