什么& Objective-C中的符号是什么意思?

时间:2009-09-04 09:37:32

标签: iphone objective-c syntax operators

Objective-C中&符号的含义是什么?我目前正在查看数据结构,并且对它感到非常困惑。

我已经浏览了网页,但还没有找到答案。我知道这可能是一个基本的Objective-C概念,但我无法理解它。

例如:

int *pIntData = (int *)&incomingPacket[0];

这里使用传入数据包的代码是什么?

2 个答案:

答案 0 :(得分:16)

&安培;是一元运算符的C地址。它返回其操作数的内存地址。

在您的示例中,它将返回incomingPacket数组的第一个元素的地址,然后将其强制转换为int *(指向int的指针)

答案 1 :(得分:8)

同样的事情在C中意味着。

int *pIntData = (int *)&incomingPacket[0];

基本上这表示incomingPacket(& incomingPacket [0])开头的地址是指向int(int *)的指针。局部变量pIntData被定义为指向int的指针,并被设置为该值。

因此:

*pIntData will equal to the first int at the beginning of incomingPacket.
pIntData[0] is the same thing.
pIntData[5] will be the 6th int into the incomingPacket.

为什么这样?如果您知道正在流式处理的数据是一个整数数组,那么这样就可以更容易地迭代整数。

这句话,如果我没有记错的话,也可以写成:

int *pIntData = (int *) incomingPacket;