我们遇到一个非常棘手的问题,这个问题就是,对于一堆数据来说,我们进行存储,放到一个指定的仓库当中,先前我们使用数组加加标的形式进行访问仓库当中的元素位置,但是呢,现在我们使用的是一个指针结构,指针指向的是一个地址,同时使用函数malloc进行空间的开辟,但是当我们需要仓库当中的元素时,我们应该如何拿出来使用?接下来我们来学习一下指向数组的指针以及数组名之间的区别与联系
解释:我们一再强调数组名就是元素的首地址,也就是数组加角标的形式,他本身就带着自己的首地址,这就相当于是我们去一个地方聚餐,第1种情况我们认识这个地方,认识聚餐的饭店,第2种情况就是我们本身不认识聚餐的饭店的地址,但是呢,有一个叫指针的同学给我发消息,告诉了我们聚餐的饭店地址,那么我们根据给出的饭店地址,就能够找到对应的饭店,虽然两种方式不同,但是我们最终目的不是到达了聚餐的地方,后面的这种方式,我们用到的工具是什么呢?就是同学给我的地址值,还有就是我们的导航地图【这里我们理解成如何行使】两种方式对应的两种代码,a[i]和*[p+i]两种形式,但是他们也有一定的区别,就是一个是常量,一个是变量,指针呢就是我们定义的一个变量,而数组名就是一个常量,对于指针的特性,我们要知道,他可以指向数组的首地址,也可以指向其他的地方,是很灵活的,是我们自己定义的,而数组名在一开始定义的时候,就说明了他是一个常量,虽然是一个常量啊,但它的本质还是一个指针,数组当中的方括号,其实我们就可以看作是一个*号,其中的i就是从起始地址向后偏移i个字节,指针名就可以看成数组名,其中的方括号就是星号,