G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione XI Gli operatori Programmazione di Calcolatori: gli operatori 1
G. Amodeo, C. Gaibisso Operatore & Programmazione di Calcolatori: gli operatori2 Sintassi : &nome_variabile Valore: indirizzo della variabile nome_variabile Esempio: int *x; int y; x = &y;
G. Amodeo, C. Gaibisso Operatore * Programmazione di Calcolatori: gli operatori3 Sintassi : *nome_puntatore Valore: il nome della variabile il cui indirizzo è memorizzato in nome_puntatore Esempio: y y int *x, y; y = 1; x = &y; *x = *x+1;
G. Amodeo, C. Gaibisso Operatore di assegnamento Programmazione di Calcolatori: gli operatori4 Sintassi: nome_variabile = espressione Valore: è il valore di espressione Modifiche allo stato della memoria: assegna alla variabile nome_variabile il valore di espressione espressione
G. Amodeo, C. Gaibisso Operatore di assegnamento Programmazione di Calcolatori: gli operatori5 Attenzione: il tipo di nome_variabile e quello di espressione devono coincidere
G. Amodeo, C. Gaibisso Operatore di assegnamento Programmazione di Calcolatori: gli operatori6 Esempio: // sorgente: Lezione_XI\OpAss_1.c // programma che mostra il comportamento // dell'operatore di assegnamento #include int main () { // definizione e inizializzazione delle variabili int x, y; y=2; // visualizza il valore di y assegnandolo // al tempo stesso a x printf(\nY: %d, x=y); // visualizza il valore di x printf(\nX: %d, x); return(1); };
G. Amodeo, C. Gaibisso Operatore di assegnamento Programmazione di Calcolatori: le strutture di controllo7 Compilazione: Esecuzione:
G. Amodeo, C. Gaibisso Operatore di assegnamento Programmazione di Calcolatori: gli operatori8 Sintassi: *nome_puntatore = espressione Valore: è il valore di espressione Modifiche allo stato della memoria: assegna alla variabile il cui indirizzo è memorizzato in nome_puntatore il valore di espressione espressione
G. Amodeo, C. Gaibisso Operatore di assegnamento Programmazione di Calcolatori: gli operatori9 // sorgente: Lezione_XI\OpAss_2.c // programma che mostra il comportamento // dell'operatore di assegnamento #include int main () { // definizione e inizializzazione delle variabili int x, y, *punx, *puny; punx=&x; puny=&y; *puny=2; // visualizza il valore di y assegnandolo // al tempo stesso a x printf(\nY: %d, *punx=*puny); // visualizza il valore di x printf(\nX: %d, *punx); return(1); }; Esempio:
G. Amodeo, C. Gaibisso Operatore di assegnamento Programmazione di Calcolatori: le strutture di controllo10 Compilazione: Esecuzione:
G. Amodeo, C. Gaibisso Aritmetica dei puntatori Programmazione di Calcolatori: gli operatori11 nome_puntatore + espr_intera nome_puntatore - espr_intera valore di nome_puntatore + (valore di espr_intera * numero di locazioni allocate per il tipo della variabile riferita) valore di nome_puntatore - (valore di espr_intera * numero di locazioni allocate per il tipo della variabile riferita)
G. Amodeo, C. Gaibisso Aritmetica dei puntatori Programmazione di Calcolatori: gli operatori12 Esempio: int *B, *C; x A 3 x x x x B x C x x 2839 B = &A; C = B+2; 2847
G. Amodeo, C. Gaibisso Operatore di auto-incremento prefisso Programmazione di Calcolatori: gli operatori13 Sintassi: ++nome_variabile Valore: il valore di nome_variabile incrementato di 1 Modifiche allo stato della memoria: incrementa di 1 il valore di nome_variabile
G. Amodeo, C. Gaibisso Operatore di auto-incremento prefisso Programmazione di Calcolatori: gli operatori14 Esempio: B=++A; x A 3 x x x x x B x x 1 4 4
G. Amodeo, C. Gaibisso Operatore di auto-incremento postfisso Programmazione di Calcolatori: gli operatori15 Sintassi: nome_variabile++ Valore: il valore di nome_variabile Modifiche allo stato della memoria: incrementa di 1 il valore di nome_variabile
G. Amodeo, C. Gaibisso Operatore di auto-incremento postfisso Programmazione di Calcolatori: gli operatori16 Esempio: B=A++; x A 3 x x x x x B x x 1 3 4
G. Amodeo, C. Gaibisso Operatore di auto-decremento prefisso Programmazione di Calcolatori: gli operatori17 Sintassi: --nome_variabile Valore: il valore di nome_variabile decrementato di 1 Modifiche allo stato della memoria: decrementa di 1 il valore di nome_variabile
G. Amodeo, C. Gaibisso Operatore di auto-decremento prefisso Programmazione di Calcolatori: gli operatori18 Esempio: B=--A; x A 3 x x x x x B x x 1 2 2
G. Amodeo, C. Gaibisso Operatore di auto-decremento postfisso Programmazione di Calcolatori: gli operatori19 Sintassi: nome_variabile-- Valore: il valore di nome_variabile Modifiche allo stato della memoria: decrementa di 1 il valore di nome_variabile
G. Amodeo, C. Gaibisso Operatore di auto-decremento postfisso Programmazione di Calcolatori: gli operatori20 Esempio: B=A--; x A 3 x x x x x B x x 1 3 2
G. Amodeo, C. Gaibisso Operatori di auto-incremento e decremento Esempio 21Programmazione di Calcolatori: gli operatori
G. Amodeo, C. Gaibisso Operatori di auto-incremento e decremento 22Programmazione di Calcolatori: gli operatori Compilazione: Esecuzione:
G. Amodeo, C. Gaibisso Operatori di relazione Programmazione di Calcolatori: gli operatori23 Sintassi: a)espr_1 == espr_2uguale b)espr_1 != espr_2diverso c)espr_1 > espr_2maggiore d)espr_1 >= espr_2maggiore o uguale e)espr_1 < espr_2minore f)espr_1 <= espr_2minore o uguale Valore: 1se il valore delle espressioni si trovano nella relazione specificata 0altrimenti
G. Amodeo, C. Gaibisso Operatori di relazione Esempio 24Programmazione di Calcolatori: gli operatori
G. Amodeo, C. Gaibisso Operatori di relazione 25Programmazione di Calcolatori: gli operatori Compilazione: Esecuzione:
G. Amodeo, C. Gaibisso Operatori logici Programmazione di Calcolatori: gli operatori26 Sintassi: espr 1 || espr 2 or Valore: 0se espr 1 e espr 2 valgono entrambe 0 1altrimenti Sintassi: espr 1 && espr 2 and Valore: 1 se espr 1 e espr 2 sono entrambe 0 0altrimenti
G. Amodeo, C. Gaibisso Operatori logici Programmazione di Calcolatori: gli operatori27 Sintassi: !esprnot Valore: 1se espr vale 0 0altrimenti
G. Amodeo, C. Gaibisso Operatori logici Esempio 28Programmazione di Calcolatori: gli operatori 1 1 0
G. Amodeo, C. Gaibisso Operatori logici 29Programmazione di Calcolatori: gli operatori Compilazione: Esecuzione: