一、指针的设计思想
指针的设计思想是基于人类对具体事物进行抽象思维的体现。是人类特有的抽象思维的体现。
这就好比人类用食物来代替可以吃的东西,这就是对可以消化的,无毒副作用的,能为人体提供能量的一类物体的抽象。
同理,指针是对内存中的一个地址的抽象或指代,是为程序员提供操作内存的手段。程序员不可以直接拿手去操作内存,于是就找到了一个中间体来操作内存。就比如大猩猩够不着树上的香蕉,于是拿了根竹竿捅下来。指针就相当于这根竹竿。更切确的说指针更像是香蕉的替代品。
所以便于理解,我们可以说指针就是地址,地址就是指针,当你下次看到指针符号,你就理解它是某种类型数据的首地址就行了。因为当你打印指针p的时候,p的值就是地址本身。
二、指针的作用范围:
由于指针是有类型的,因此指针的操作范围就是该数据类型的首地址开始,长度为该数据类型的sizeof之间的一段内存区。
三、void*指针:
void*指针是可以容纳任何数据类型的指针,通常作为函数参数类型使用,这样该函数就可以接收任何数据类型的指针了。
四、误区反省:
下次再看到*,你就把该符号理解为这是指针变量,即机器将要把指针变量解释为该指针指向数据的地址。