La mia risposta è del tipo "out of the box".
In caso di dubbi sull'utilizzo da parte dell'operatore, ritengo "quale sia la funzione di sovraccarico equivalente" di questo operatore?
I, so, che gli operatori Java non hanno l'overloading dell'operatore, è solo un modo alternativo per fare una soluzione.
In questo caso:
...
x++;
...
dovrebbe essere letto come:
...
int /* function */ postincrement (/* ref */ int avalue)
{
int Result = avalue;
// reference value,
avalue = avalue + 1;
return Result;
}
...
postincrement(/* ref */ x);
...
E:
...
++x;
...
...
int /* function */ preincrement (/* ref */ int avalue)
{
// reference value,
avalue = avalue + 1;
int Result = avalue;
return Result;
}
...
preincrement(/* ref */ x);
...
Quindi, sia, versioni di "++", lavoro di funzione che riceve un parametro variabile per riferimento.
Quindi, un valore letterale come "0 ++" o un risultato di funzione come "getInt() ++", non sono riferimenti di variabile.
Cheers.
Un'osservazione a margine: a giudicare dal modo in cui hai chiamato le tue variabili, sembra che tu int sia "int oneA = zero ++;" assegna * uno * a "oneA". Questo non è corretto L'operatore di incremento * post * restituisce il valore * vecchio * (non incrementato). Dopo 'int oneA = zero ++;', 'oneA' è' 0' e 'zero' è' 1'. – Heinzi
@Heinzi vero! Ho visto questo nel mio codice reale, questo era solo un esempio – Blundell
Quindi nel tuo codice non scriverebbe automaticamente solo 'int oneC = getInt() + 1;'? –