Objective-C中的&
符號的含義是什麼?我目前正在研究數據結構,並對它感到困惑。Objective-C中&符號的含義是什麼?
我環顧了網絡,但沒有找到答案。我知道這可能是一個基本的Objective-C概念,但我無法理解它。
例如:
int *pIntData = (int *)&incomingPacket[0];
什麼是代碼在這裏輸入數據包做什麼?
Objective-C中的&
符號的含義是什麼?我目前正在研究數據結構,並對它感到困惑。Objective-C中&符號的含義是什麼?
我環顧了網絡,但沒有找到答案。我知道這可能是一個基本的Objective-C概念,但我無法理解它。
例如:
int *pIntData = (int *)&incomingPacket[0];
什麼是代碼在這裏輸入數據包做什麼?
&是C元運算符地址的。它返回其操作數的內存地址。
在您的例子,它將返回incomingPacket陣列,這是第一個元素的地址,然後轉換爲int *(指針爲int)
同樣的事情就意味着在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;
的'&'是C算子;如果你在C語言中不是很舒服,學習Objective-C可能會對你很困難。 – 2009-10-30 19:06:02