Operatori di incremento e decremento C ++
L'operatore di incremento ++ aggiunge 1 al suo operando e l'operatore di decremento - sottrae 1 dal suo operando. Quindi -
x = x+1;
is the same as
x++;
E allo stesso modo -
x = x-1;
is the same as
x--;
Entrambi gli operatori di incremento e decremento possono precedere (prefisso) o seguire (suffisso) l'operando. Ad esempio:
x = x+1;
can be written as
++x; // prefix form
o come -
x++; // postfix form
Quando un incremento o un decremento viene utilizzato come parte di un'espressione, vi è un'importante differenza nelle forme prefisso e suffisso. Se si utilizza la forma del prefisso, l'incremento o il decremento verrà eseguito prima del resto dell'espressione e, se si utilizza il modulo suffisso, l'incremento o il decremento verranno eseguiti dopo la valutazione dell'espressione completa.
Esempio
Di seguito è riportato l'esempio per comprendere questa differenza:
#include <iostream>
using namespace std;
main() {
int a = 21;
int c ;
// Value of a will not be increased before assignment.
c = a++;
cout << "Line 1 - Value of a++ is :" << c << endl ;
// After expression value of a is increased
cout << "Line 2 - Value of a is :" << a << endl ;
// Value of a will be increased before assignment.
c = ++a;
cout << "Line 3 - Value of ++a is :" << c << endl ;
return 0;
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Line 1 - Value of a++ is :21
Line 2 - Value of a is :22
Line 3 - Value of ++a is :23