Cplusplus-cpp-pointer-arithmatic
提供:Dev Guides
C ++ポインター演算
あなたが理解したように、ポインタは数値であるアドレスです;したがって、数値の場合と同様に、ポインターに対して算術演算を実行できます。 ポインターで使用できる4つの算術演算子があります:+、-、、および-
ポインター演算を理解するために、 ptr はアドレス1000を指す整数ポインターであると考えてみましょう。 32ビット整数を想定して、ポインタで次の算術演算を実行しましょう-
ポインターをインクリメントする
定数ポインターであるため増分できない配列名とは異なり、変数ポインターは増分できるため、プログラムでは配列の代わりにポインターを使用することをお勧めします。 次のプログラムは、配列の後続の各要素にアクセスするために変数ポインタをインクリメントします-
上記のコードをコンパイルして実行すると、次のような結果が生成されます-
ポインターのデクリメント
同じ考慮事項は、以下に示すように、そのデータ型のバイト数だけ値を減らすポインタのデクリメントにも適用されます-
上記のコードをコンパイルして実行すると、次のような結果が生成されます-
ポインターの比較
ポインターは、==、<、>などの関係演算子を使用して比較できます。 p1とp2が、同じ配列の要素など、相互に関連する変数を指している場合、p1とp2を有意義に比較できます。
次のプログラムは、それが指すアドレスが配列の最後の要素のアドレス、つまり&var [MAX-1]以下である限り、変数ポインタをインクリメントすることにより、前の例を変更します-
上記のコードをコンパイルして実行すると、次のような結果が生成されます-