• Non ci sono risultati.

Operatori di incremento e decremento ++

N/A
N/A
Protected

Academic year: 2021

Condividi "Operatori di incremento e decremento ++"

Copied!
2
0
0

Testo completo

(1)

Prof. Rio Chierego Versione 1.0

Pagina 1

Operatori di incremento e decremento

++

e

--

sono operatori unari con la stessa priorità a del meno unario e associatività da destra a sinistra.

Si possono applicare solo a variabili (di tipi interi, floating o puntatori), ma non a espressioni generiche (anche se di questi tipi).

Esempio: ipotizziamo di applicare, dopo la dichiarazione e la relativa inizializzazione della variabile c, una istruzione alla volta tra quelle seguenti:

int c = 5; /* dichiarazione variabile di esempio */

1a) printf(“%d”, c++); /* visualizzato il valore 5 ma dopo c varrà 6 */

1b) printf(“%d”, c--); /* visualizzato il valore 5 ma dopo c varrà 4 */

1c) printf(“%d”, --c); /* visualizzato il valore 4 e c dopo varrà esattamente 4 */

1d) printf(“%d”, ++c); /* visualizzato il valore 6 e c dopo varrà esattamente 6 */

Semantica degli operatori di incremento/decremento

Postfisso: la variabile viene modificata PRIMA di utilizzarne il relativo valore.

Prefisso: la variabile viene modificata DOPO averne utilizzato il relativo valore.

Operatore Simbolo Formato Operazione

incremento postfisso  c rende disponibile il valore di c, poi lo incrementa decremento postfisso  c rende disponibile il valore di c, poi lo decrementa

incremento prefisso  c incrementa il valore di c, poi lo rende disponibile

decremento prefisso  c decrementa il valore di c, poi lo rende disponibile

Esempio:

int c = 5;

int b = 30 / c++; /* b == 6, c == 6 */

int d = 6 + --c; /* d = 11, c == 5 */

In sintesi gli operatori postfissi modificano il valore della variabile dopo l’utilizzo del valore (vecchio) nell’espressione.

Gli operatori prefissi modificano il valore della variabile cui sono applicati prima che se ne utilizzi il valore.

N.B. Ovviamente tali operatori possono comparire in qualunque tipo di espressioni, eventualmente presenti anche all’interno di condizioni logiche, dove vanno opportunamente gestiti.

(2)

Prof. Rio Chierego Versione 1.0

Pagina 2 Esempio 1: cosa verrà mostrato a video?

Soluzione 1:

caso A) ramo “else” e visualizzazione del valore 6 caso B) ramo “if” e visualizzazione valore 6 Esempio 2: cosa verrà mostrato a video?

Soluzione 2:

caso A) ramo “else” e visualizzazione del valore 3 caso B) ramo “if” e visualizzazione valore 3

int c = 5;

if (++c == 5)

printf(“ramo allora e c vale %d”, c);

 else 

printf(“ramo altrimenti e c vale %d”, c);

 int c = 5;

if (c++ == 5)

printf(“ramo allora e c vale %d”, c);

 else 

printf(“ramo altrimenti e c vale %d”, c);

A B

int c = 4;

if (--c == 4)

printf(“ramo allora e c vale %d”, c);

 else 

printf(“ramo altrimenti e c vale %d”, c);

 int c = 4;

if (c-- == 4)

printf(“ramo allora e c vale %d”, c);

 else 

printf(“ramo altrimenti e c vale %d”, c);

A B

Riferimenti

Documenti correlati

© 2001 Pier Luca Montessoro - Davide Pierattoni (vedere nota di copyright a

 Alla valutazione, Alla valutazione, T T deve essere istanziato ad un termine deve essere istanziato ad un termine che denota una clausola; se più clausole sono unificabili

I contributi previsti interessano tutta la filiera: produzione di materia prima in campo, gestione irrigua delle colture, innovazione varietale, difesa fitosanitaria

Per questo motivo abbiamo chiesto al Ministro dell’Interno di intervenire correggendo la norma (legge 46/17), per evitare che la difficoltà delle istituzioni di assolvere

Il versamento delle quote e cauzioni va effettuato preventivamente presso l’Ufficio Economato del Comune, previa prenotazione ed accordo con l’ufficio che gestisce le

divisa*bianca/camice bianco + taschino verde 1) Tecnico  Sanitario  2)Logopedista= .

più compromessi a livello sociale, e quindi io adesso ti sto parlando da non so magari ho sbagliato della diversità quando si parla di un'utenza in comune

Nelle pagine 60-61 vedremo come l'interprete PHP può convertire un valore da un tipo di dati a un altro, per esempio, una stringa in un numero.. TIPO DI DATI NULL PHP offre anche