2009-09-04 81 views
9

Objective-C中的&符號的含義是什麼?我目前正在研究數據結構,並對它感到困惑。Objective-C中&符號的含義是什麼?

我環顧了網絡,但沒有找到答案。我知道這可能是一個基本的Objective-C概念,但我無法理解它。

例如:

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

什麼是代碼在這裏輸入數據包做什麼?

+3

的'&'是C算子;如果你在C語言中不是很舒服,學習Objective-C可能會對你很困難。 – 2009-10-30 19:06:02

回答

14

&是C元運算符地址的。它返回其操作數的內存地址。

在您的例子,它將返回incomingPacket陣列,這是第一個元素的地址,然後轉換爲int *(指針爲int)

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; 
相關問題