数组与指针(先不看)¶
数组名与首元素地址¶
数组名在大多数表达式中,会转换为指向首元素的指针。
数组本身,不是指针变量。 a 不能像 p 一样,重新赋成另一个地址。
指针的移动¶
p 指向首元素时:
| 写法 | 对应位置或元素 |
|---|---|
p + i |
&a[i] |
*(p + i) |
a[i] |
p[i] |
a[i] |
加 1,是走过一个元素,不一定是走过一个字节。 步长与指向的元素类型有关。
两种遍历写法¶
下面 n 个元素已经存进数组,p 指向首元素。
这两种写法访问相同的元素,客观题中可能换着出现。
范围与尾后位置¶
a 的最后一个元素是 a[4],a + 5 在它后面一位,只能作为边界,不能通过 *p 读取元素。
指针加减,只能在同一数组及其尾后位置的范围内进行。不能越过去,再指望走回来就没事。
sizeof 数组,与 sizeof 指针,不是一回事。
不要用 sizeof p 计算 p 指向的数组长度。