C にポインター演算が存在することは知っていますが、iOS の Objective-C プログラミングでポインター演算が役立つ理由の例を誰か挙げてもらえますか? 私は困惑しています...
4 に答える
実際にはかなりの場所で使用されていますが、ここではほんの一部です...
- 配列アクセス
C配列を使用し、個々の要素にアクセスするときはいつでも(配列[12]としましょう、実際には*(配列+ 12)として解釈されます
- OpenGLES
これを使用したことがある場合は、iOS でポインター演算を広範囲に使用します。複数の配列をインターリーブ配列にパックする必要がある場合は、offsetof を使用する必要があります。これはメモリ バッファーに追加され、属性の完全な位置を取得します。 .
- 高速列挙
ポインター演算を使用すると、個々の変数の代わりに実際のポインターをインクリメントすることで、要素の列挙を高速化できます。
- 特定のデータ構造のより簡単なプログラミング
deque などの特定のデータ構造は、ポインター演算を使用して実装する方がはるかに簡単です。
ポインタ演算は客観的 C では使用されません。答えはありません。
上記の例が示すように C 配列を使用することは、目的 C の使用ではなく、C の使用です。目的 C 配列には、.count プロパティを使用する通常の構文と同様に、列挙機能が組み込まれています。
質問に答えるために、ポインター演算は必要がなく、obj c 配列ポインターによってサポートされていないため、Objective C 自体では使用されません。
Objective C のすべてのポインタ演算は、C の厳密なスーパーセットである Objective C から派生したものであり、C から派生していない Objective C では使用されません。
高速な列挙 (つまり、for-in ループ) を開発した人々にとっては非常に便利だったと思います。