p == q 表示指向同一元素,p < q 表示 p 指向的元素在 q 之前。p + n 指向第 n 個後續元素。編譯器依元素大小自動縮放:char=1、int/short=2、long/float=4、double=8 位元組。結構/聯同理。p - q 兩指標指向同一陣列時,傳回中間元素個數(已縮放)。陣列名 a 即為 &a[0](首元素位址)。以下完全等價:
| 指標表示法 | 陣列表示法 | 意義 |
|---|---|---|
p + i / a + i | &a[i] | 第 i 元素位址 |
*(p + i) / *(a + i) | a[i] | 第 i 元素值 |
p[i] | *(p + i) | 指標亦可用下標存取 |
int a[10], *p = a + 5; // p 指向 a[5]
p[2] // 等同 *(p+2) → a[7]
p[-3] // 等同 *(p-3) → a[2]
指標下標可為負值,只要不超出陣列邊界。這展示指標運算的靈活性與陣列下標的本質一致性。