【发布时间】:2012-05-14 06:33:49
【问题描述】:
我知道 C 中存在指针运算,但任何人都可以举出任何例子说明为什么指针运算在 iOS 的 Objective-C 编程中曾经有用吗?我被难住了……
【问题讨论】:
标签: objective-c ios c pointers pointer-arithmetic
我知道 C 中存在指针运算,但任何人都可以举出任何例子说明为什么指针运算在 iOS 的 Objective-C 编程中曾经有用吗?我被难住了……
【问题讨论】:
标签: objective-c ios c pointers pointer-arithmetic
其实用的地方挺多的,这里只列举几个……
每当您使用 C 数组并访问单个元素时(比如说数组 [12],它实际上被解释为 *(array+12)
如果你曾经使用过它,它会在 iOS 上大量使用指针算法,当需要将多个数组打包成一个交错数组时,你必须使用 offsetof,然后将其添加到内存缓冲区以获得完整位置属性。
通过使用指针算法,您可以通过增加实际指针而不是单个变量来加速元素的枚举。
使用指针算法更容易实现某些数据结构,例如双端队列。
【讨论】:
目标 C 中不使用指针算术。问题是它有什么用处。答案是否定的。
如上例所示,使用 C 数组不是对目标 C 的使用,而是对 C 的使用。目标 C 数组具有内置枚举功能以及使用 .count 属性的常规语法。
为了回答这个问题,objective C 本身没有使用指针算术,因为它们不是必需的,并且 obj c 数组指针不支持。
【讨论】:
Objective C 中的所有指针运算都是从Objective C 派生的,是C 的严格超集,在Objective c 中没有使用不是从C 派生的。
【讨论】:
我认为它对开发快速枚举(即 for-in 循环)的人非常有用。
【讨论】:
for (id object in array) 不是 C 的一部分吗??