PDA

View Full Version : domanda forse banale sul C


Killian
07-09-2003, 13:55
una domanda:

mettiamo che ho una variabile intera, chiamiamola x, voglio incrementarla di 1, che differenza c'è tra le seguenti notazioni?

a) x=x+1
b) x+=1
c) x++
d) ++x

so che tra x++ e ++x, nel primo caso si incrementa x e poi si esegue l'espressione, mentre nel secondo caso è il contrario, ma come tempo di CPU richiesto, c'è differenza?

nel caso l'incremento di 1 sia un caso particolare, c'è differenza tra

A) x=x+y
B) x+=y

dove y è una costante o una variabile?

cionci
07-09-2003, 14:36
Dipende in cosa vuoi quantificare queste differenze...

Sicuramente x += 1 è più veloce di x = x + 1...
C'è chi dice che ++x sia più veloce di x++, ma non è detto...credo che dipenda dalle ottimizzazioni del compilatore...

La differenza fra ++x e x++ è che in x++ il risultato dell'operazione è il contenuto originale di x e poi dopo x viene incrementata... ++x ritorna già x incrementato...

x = 5;
y = ++x;
/*y è uguale a 6 */

x = 5;
y = x++;
/*y è uguale a 5 */