知识点回顾:
1. 核心概念:虽然数组和指针关系密切,好基友,但数组绝不是指针,它们只是哥俩好而已。
2. 数组名是数组第一个元素的地址,也是数组的首地址。
3. 指向数组的指针
int a[] = {1, 2, 3, 4, 5};
int *p;
p = a; // 语句1
p = &a[0]; // 语句2
因为数组名即数组第一个元素的地址,所以语句 1 和语句 2 是等价的,都是将数组 a 的首地址存放到指针变量 p 中。
4. 指针的运算
当指针指向数组元素的时候,我们可以对指针变量进行加减运算,这样做的意义相当于指向距离指针所在位置向前或向后第 n 个元素。比如 p+1 表示指向 p 指针指向的元素的下一个元素;p-1 则表示指向上一个元素。
需要郑重强调的是:p+1 并不是简单地将地址加 1,而是指向数组的下一个元素。
5. 数组和指针哪里像?
请看视频的栗子




