我的问题需要一些解释:
首先,让我们考虑一个大小为 n(动态或静态)的一维数组。我们称之为标签。
我们将通过假设数组存储在内存中从地址 0x01 到 (0x01 + n - 1) 来简化。
现在考虑一个称为 p 的指针。还有一个起始索引 i,介于 0 和 n - 1 之间。
然后我们这样做:
p = &tab[i];
p 知道地址 0x0i 的值。(符号不正确,但你明白了)。
我们可以像这样使用 p读取tab[i - 1]或tab[i + 1]吗?
int iprev = *(p - 1);
int inext = *(p + 1);
或者只是像这样?
int iprev = p[-1];
int inext = p[1];
并最终这样做?
p--;
p++;
如果一维阵列可以做到这一点,那么它可以用于多维阵列吗?以及如何在 C 中实现它?