2009-09-04 5 views
9

Objective-C에서 & 기호의 의미는 무엇입니까? 현재 데이터 자료를보고 있으며 혼란스러워하고 있습니다.Objective-C에서 & 기호는 무엇을 의미합니까?

나는 웹을 둘러 보았지만 대답을 찾지 못했습니다. 나는 이것이 아마도 Objective-C의 기본 개념이라는 것을 알고 있지만, 그저 내 머리를 감당할 수는 없다.

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

코드가 여기 들어오는 패킷하고있는 무엇 : 예를 들어

?

+3

은 '&'는 C 연산자 (INT 포인터)를 int * 캐스팅; C에서 익숙하지 않다면 Objective-C를 배우는 것이 어려울 수도 있습니다. –

답변

14

&는 단항 연산자 주소의 C는 : 내가 잘못 아니에요 경우로

이 문장은, 또한 기록 된 수 있습니다. 피연산자의 메모리 주소를 반환합니다.

하여 예에서

, 그것은 인 incomingPacket 어레이의 첫 번째 요소의 주소를 반환 한 다음

8

동일한 것은 그것

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

C.

수단은 기본적으로이 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 배열 인 것을 알고 있으면 int를 반복하는 것이 더 쉬워집니다.

int *pIntData = (int *) incomingPacket; 
관련 문제