我正在閱讀K & R中的數組算術部分,並且發現了一些好奇的東西。我發佈了整個段落的背景,但我主要集中在大膽的部分。用於數組的C指針算術
如果p和q指向同一陣列的成員,然後像==, !=,<關係,> =,等等,正常工作。例如,p < q如果p指向 而不是q的數組的早期成員,則q爲真。任何指針可以是 有意義地與零相等或不平等進行比較。但 行爲未定義算術或與指針 不指向同一數組的成員的指針。 (有一個例外: 過去的陣列的端部的第一個元素的地址可在指針運算使用 。)
什麼是該異常的原因是什麼?在定義大小時,是否將多餘的內存分配給任何數組的末尾?如果是這樣,爲了什麼目的?它是用空字符結束數組嗎?
理解這個最簡單的方法是:a [b] = a + b。看第98頁的解釋 – SheetJS
@Nirk:嗯?這與這有什麼關係? – jason