先来看这张图,我们定义了一个一维数组,在这个数组中,他的数组名本质上就是个地址,是这个数组的首地址,我们也可以理解为这个数组第0个元素的地址,那么在这个地址上加上2意思就是向后移动两列,找到的就是这个数组第2各成员的地址。在这里有个公式 *(参考地址+偏移)==参考地址[偏移] 讲的其实就是[]的计算过程,意思就是通过数组名找到第0列的地址,再向后偏移四位就找到了第4列的地址,然后通过*操作就可以得到他的空间。快捷方式就是 参考地址[偏移]。最后要说的是arr与&arr的区别,虽然他们两个的值相同,但是代表的意义不同,arr代表的是数组第0列的地址,向后偏移1位找到的是第1列的地址,而&arr找到的是这个数组的地址,向后偏移1位找到的就是数组后边的地址。接下来看几个问题:
1.数组的特征包括哪些?
答:长度固定、同类型、有编号。
2.数组名的特性包括什么?
他是数组整个存储空间的首地址,也是第0个元素的地址,他是一个地址常量,所以是不可以修改的。
3.数组名+1与&数组名+1的区别?
答:刚才说到了,数组名+1是在数组中列的移动找到的就是第1列的地址;而&数组名+1属于是数组外的移动,找到的是数组后面的地址。
4.[]运算符的计算过程是什么?
答:[]其实就是空间寻找的快捷方式,他的计算过程是:*(参考地址+偏移) 。