Autoincremento e autodecremento

Da Wikipedia, l'enciclopedia libera.

Nel C e in alcuni linguaggi di programmazione da esso derivati (come C++, Java e C#), l'autoincremento è l'aumento di 1 del valore di una variabile, mentre l'autodecremento è la diminuzione di 1 del valore di una variabile.

Per esempio:

int a; // "a" è una variabile di tipo intero
a = a + 1; // questo è l'autoincremento
a = a - 1; // questo è l'autodecremento

L'operazione di autoincremento in molti linguaggi può anche essere scritta in uno dei due modi che seguono:

++a; // versione prefissa
a++; // versione suffissa

L'operazione di autodecremento può anche essere scritta così:

--a; // versione prefissa
a--; // versione suffissa

Le 2 versioni prefissa e suffissa non sono in generale equivalenti:

  • nel primo caso, prima viene fatto l'incremento e poi viene valutata l'espressione;
  • nel secondo caso, prima viene valutata l'espressione, e poi viene incrementata.

Se l'espressione è usata solo come istruzione, come negli esempi sopra, l'effetto è lo stesso nei due casi, ma se il valore risultante è utilizzato in un'espressione più ampia i due casi manifestano la loro diversità. Per esempio:

int a = 5; // la variabile a viene inizializzata al valore 5
int b = --a; // la variabile b viene inizializzata al valore decrementato di a, cioè 4
// Arrivati a questo punto, a vale 4 e b vale 4

int c = 5; // la variabile c viene inizializzata al valore 5
int d = c--; // la variabile d viene inizializzata al valore attuale di c, cioè 5, e poi c viene decrementata
// Arrivati a questo punto, c vale 4 ma d vale 5

Questa sintassi viene utilizzata spesso nei cicli for e while per far scorrere l'indice di riferimento.

In C e C++, l'autoincremento può essere usato anche per sfruttare l'aritmetica dei puntatori oppure per passare da un elemento al successivo in una collezione di elementi mediante un iteratore. Infatti, incrementare di 1 un puntatore equivale a spostarlo all'elemento successivo di un array.

In alcuni dialetti SQL, un linguaggio di definizione, interrogazione e alterazione di data base, la keyword AUTO_INCREMENT o AUTOINCREMENT (autoincremento) indica un campo numerico il cui valore, se non diversamente indicato in fase di inserimento di un record, è automaticamente inizializzato al primo intero maggiore dell'ultimo valore assegnato a quel campo nel record precedente. In questo modo è possibile assegnare un numero univoco e crescente ai record inseriti in una tabella.