本帖最后由 小小蚂蚁举千斤 于 2025-2-22 23:11 编辑
说起多级指针这个东西,我以前上学的时候最多理解到 2 级,再多真的会把我绕晕,经常也会写错代码。
你要是给我写个这个:
能把我搞崩溃,我估计很多同学现在就是这种情况
其实,多级指针也没那么复杂,就是指针的指针的指针的指针……非常简单。
今天就带大家认识一下多级指针的本质。
首先,我要说一句话,没有多级指针这种东西,指针就是指针,多级指针只是为了我们方便表达而取的逻辑概念。
首先看下生活中的快递柜:
这种大家都用过吧,每个格子都有一个编号,我们只需要拿到编号,然后就能找到对应的格子,取出里面的东西。
这里的格子就是内存单元,编号就是地址,格子里放的东西就对应存储在内存中的内容。
假设我把一本书,放在了 03 号格子,然后把 03 这个编号告诉你,你就可以根据 03 去取到里面的书。
那如果我把书放在 05 号格子,然后在 03 号格子只放一个小纸条,上面写着:「书放在 05 号」。
你会怎么做?
当然是打开 03 号格子,然后取出了纸条,根据上面内容去打开 05 号格子得到书。
这里的 03 号格子就叫指针,因为它里面放的是指向其它格子的小纸条(地址)而不是具体的书。
明白了吗?
那我如果把书放在 07 号格子,然后在 05 号格子 放一个纸条:「书放在 07号」,同时在03号格子放一个纸条「书放在 05号」
这里的 03 号格子就叫二级指针,05 号格子就叫指针,而 07 号就是我们平常用的变量。
依次,可类推出 N 级指针。
所以你明白了吗?同样的一块内存,如果存放的是别的变量的地址,那么就叫指针,存放的是实际内容,就叫变量。
|