7.14 有個靈巧的竅門: 如果我這樣寫  int realarray[10]; int *array = &realarray[-1];  我就可以把 ``array" 當作下標從 1 開始的數組。

儘管這種技術頗有吸引力 (而且在《Numerical Recipes in C》一書的舊版中使 用過), 它卻不完全符合 C 的標準。指針算術只有在指針所指的內存塊之內, 或者指向虛構的 ``終結" 元素後的一個時才有定義; 否則, 即使指針並 未解參考, 其行為仍然是未定義的。如果在用偏移作下標運算的時候生成了非 法地址 (可能因為地址在經過某個內存段之後 ``迴繞"), 則這段代碼會失敗。

參考資料: [K&R2, Sec. 5.3 p. 100, Sec. 5.4 pp. 102-3, Sec. A7.7 pp. 205-6]; [ISO, Sec. 6.3.6]; [Rationale, Sec. 3.2.2.3]。

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)