1

我知道 C 中存在指针算术,但是任何人都可以举出任何例子来说明为什么指针算术iOS 的 Objective-C 编程中有用吗?我被难住了……

4

4 回答 4

2

它实际上用在相当多的地方,这里只是几个......

  • 数组访问

每当您使用 C 数组并访问单个元素时(比如说数组 [12],它实际上被解释为 *(array+12)

  • OpenGLES

如果您曾经使用过它,它会在 iOS 上广泛使用指针算法,当需要将多个数组打包成一个交错数组时,您必须使用 offsetof,然后将其添加到内存缓冲区以获取属性的完整位置.

  • 快速枚举

通过使用指针算法,您可以通过增加实际指针而不是单个变量来加速元素的枚举。

  • 某些数据结构的更容易编程

某些数据结构(例如双端队列)使用指针算法更容易实现。

于 2012-05-14T06:56:00.420 回答
2

目标 C 中不使用指针算术。问题是它有什么用处。答案是无。

如上例所示,使用 C 数组不是对目标 C 的使用,而是对 C 的使用。目标 C 数组具有内置枚举功能以及使用 .count 属性的常规语法。

为了回答这个问题,objective C 本身没有使用指针算术,因为它们不是必需的,并且 obj c 数组指针不支持它们。

于 2012-08-08T02:51:56.310 回答
1

Objective C 中的所有指针运算都是从 Objective C 派生的,它是 C 的严格超集,在非从 C 派生的 Objective c 中没有使用。

于 2012-05-14T06:39:02.153 回答
0

我认为它对开发快速枚举(即 for-in 循环)的人非常有用。

于 2012-05-14T06:40:09.273 回答