我正在阅读K & R中的数组算术部分,并且发现了一些好奇的东西。我发布了整个段落的背景,但我主要集中在大胆的部分。用于数组的C指针算术
如果p和q指向同一阵列的成员,然后像==, !=,<关系,> =,等等,正常工作。例如,p < q如果p指向 而不是q的数组的早期成员,则q为真。任何指针可以是 有意义地与零相等或不平等进行比较。但 行为未定义算术或与指针 不指向同一数组的成员的指针。 (有一个例外: 过去的阵列的端部的第一个元素的地址可在指针运算使用 。)
什么是该异常的原因是什么?在定义大小时,是否将多余的内存分配给任何数组的末尾?如果是这样,为了什么目的?它是用空字符结束数组吗?
理解这个最简单的方法是:a [b] = a + b。看第98页的解释 – SheetJS
@Nirk:嗯?这与这有什么关系? – jason