D では、特殊な単項演算子 ++ と -- を使って、ポインタや整数の増分と減分を行うことができます。これらの演算子の効果は、ANSI-C の場合と同じです。これらの演算子は変数にのみ適用可能で、変数名の直前または直後に付加します。変数名の直前に演算子を付けた場合、まず変数が変更され、結果の式は変更後の変数の値と等しくなります。たとえば、次の 2 つの式の結果は同じです。
x += 1; |
y = ++x; |
y = x; |
|
変数名の直後に演算子を付けた場合、式で使用する現在の値が返されたあと、変数が変更されます。たとえば、次の 2 つの式の結果は同じです。
y = x; |
y = x--; |
x -= 1; |
|
インクリメント演算子とデクリメント演算子を使用すると、変数宣言なしで新しい変数を作成できます。変数宣言を省略して、変数にインクリメント演算子かデクリメント演算子を適用した場合、この変数の型は暗黙的に int64_t になります。
インクリメント演算子とデクリメント演算子は、整数変数またはポインタ変数に適用できます。これらの演算子を整数変数に適用した場合、対応する値が 1 増分または 1 減分されます。これらの演算子をポインタ変数に適用した場合、ポインタアドレスが、ポインタが参照しているデータ型のサイズの分だけ増分または減分されます。D のポインタとポインタ算術演算については、第 5 章ポインタと配列を参照してください。