ポインタも値を持つので、演算が可能です。 一般に、他に定義してある配列変数のアドレスを代入して使います。
int *a;
と宣言されたポインタ変数の場合、a++
は、アドレスを int のバイトサイズ分だけ (UNIXの場合4バイト)進めます。これは、int 型の配列の 次の要素を指し示すことになります。 逆に、a--
はひとつ前の要素を指します。 同様に、a+2
は2つ先の要素を、a-3
は3つ前の要素を指します。
ポインタ変数 a と b とが同じ配列内の異なる要素を
指している場合、
b - a
は、2つのアドレスの間にある要素の数を表します。
ポインタ変数同士の加算はできません。