i++
変数への代入ですi
。
あなたの場合、zero++
はと同等zero = zero + 1
です。つまり、0++
意味0 = 0 + 1
がない、およびを意味しgetInt() = getInt() + 1
ます。
より正確に :
int oneA = zero++;
意味
int oneA = zero;
zero = zero + 1; // OK, oneA == 0, zero == 1
int oneB = 0++;
意味
int oneB = 0;
0 = 0 + 1; // wrong, can't assign value to a value.
int oneC = getInt()++;
意味
int oneC = getInt();
getInt() = getInt() + 1; // wrong, can't assign value to a method return value.
より一般的な観点から、変数はL値であり、これはメモリ位置を参照するため、割り当てることができることを意味します。L値のLは、L値が代入演算子の左側または右側にある場合でも(たとえば) 、代入演算子の左側を表します(つまり)。=
x = y
反対はR値です(Rは代入演算子の右側を表します)。R値は、L値に何かを割り当てるために、代入ステートメントの右側でのみ使用できます。通常、R値はリテラル(数値、文字列など)とメソッドです。