2009-09-04 13 views
9

Objective-Cで&シンボルの意味は何ですか?私は現在、データコンストラクタを見ていて、実際にそれが混乱しています。Objective-Cでは&記号の意味は何ですか?

私はウェブの周りを見回しましたが、答えが見つかりませんでした。私はこれがおそらく基本的なObjective-Cのコンセプトだと知っていますが、私はそれの周りに頭を浮かべることはできません。例えば

:コードはここに入ってくるパケットをどのように

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

しているのですか?それはC.

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

に意味

+3

にキャストさincomingPacket配列の最初の要素のアドレスが返される '&' C演算子です。あなたがCでまだかなり快適でないなら、Objective-Cを学ぶことはあなたにとって苦労かもしれません。 –

答えて

14

&はCアドレス-の単項演算子です。そのオペランドのメモリアドレスを返します。

あなたの例では、次いで、INT *(intへのポインタ)

8

同じことが基本的にこれは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; 
関連する問題