title: Autoincremento e autodecremento
text: # Autoincremento e autodecremento
  
  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:
  
  L'operazione di autoincremento in molti linguaggi può anche essere scritta in uno dei due modi che seguono:
  
  L'operazione di autodecremento può anche essere scritta così:
  
  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:
  
  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.
  
  