两个指针的差异
Difference of Two Pointers
我正在阅读 计算机系统:程序员的视角。在 3.8.2 节中有一个例子说 &E[i] - E 等于 i,假设 E 是一个 4 字节整数数组。为什么答案不是 4i?
这就是指针运算在 C 中的工作原理。
指针相减的结果以元素为单位,而不是以字节为单位。它与以下事实对称:如果您想访问数组 E
的元素 2,您可以使用 E[2]
或 *(E+2)
,而不是 E[8]
或 *(E+8)
。
我正在阅读 计算机系统:程序员的视角。在 3.8.2 节中有一个例子说 &E[i] - E 等于 i,假设 E 是一个 4 字节整数数组。为什么答案不是 4i?
这就是指针运算在 C 中的工作原理。
指针相减的结果以元素为单位,而不是以字节为单位。它与以下事实对称:如果您想访问数组 E
的元素 2,您可以使用 E[2]
或 *(E+2)
,而不是 E[8]
或 *(E+8)
。