In questa lezione studieremo i tipi di operatori in linguaggio C.
Gli operatori permettono di ottenere un determinato risultato da un’operazione, che si compie su una o più variabili, all’interno di un programma.
In C gli operatori permettono quindi di compiere delle operazioni basilari, per le funzioni più avanzate ci sono le librerie appositamente create.
Operatore unario, binario, ternario in C
Un operatore si dice unario quando ha questa sintassi:
<operando><operatore>
Si dice binario quando presenta questa sintassi:
<operando1><operatore><operando2>
Invece, si dice ternario quando ha questa sintassi:
<operando1><simbolo><operando2><simbolo><operando3>
Tipi di operatori in linguaggio C
Analizzeremo adesso i tipi di operatori in linguaggio C.
Operatore di assegnamento
L’operatore di assegnamento si indica con il simbolo = (segno di uguale).
Quindi la sintassi posso indicarla così:
<variabile> = <valore>
Dove variabile rappresenta in generale un identificatore di variabile, mentre Vvalue rappresenta un’espressione qualunque.
Dunque valore viene assegnata a variabile.
Facciamo un esempio di utilizzo di operatore di assegnamento:
base = 4 assegna alla variabile base il valore 4.
somma = 7 + 5 assegna alla variabile somma il valore 12, cioè la somma di 7 e 5.
lettera = ‘c‘ assegna alla variabile lettera il valore c.
Quindi prima occorre valutare la parte destra valore e poi assegnarla alla parte sinistra variabile.
Dunque a sinistra dell’operatore deve sempre esserci una variabile, a destra può esserci: una costante, una variabile o un’espressione.
Il tipo di dato della variabile a sinistra dell’operatore deve essere identico (o almeno compatibile) con quanto indicato a destra, il compilatore controlla la compatibilità tra i tipi.
In alcune situazioni, si risolve comunque la non compatibilità tramite delle regole di conversione automatica tra i tipi.
Inoltre, la conversione del tipo è indolore se il tipo di dato a destra è inferiore al tipo della variabile a destra dell’operatore.
Pertanto, se la conversione non avviene non è esclusa la perdita di informazione. Ad esempio la conversione di un valore float in un valore int comporta la perdita della parte frazionaria.
Si segue dunque la seguente gerarchia: char < int < float.
Continuiamo la nostra lezione parlando di altri tipi di operatori in C.
Operatori aritmetici
Si possono distinguere in operatori unari e operatori binari.
Elenchiamo come prima gli operatori matematici binari:
+ (somma) – addiziona due operandi e concatena due stringhe
– (differenza) -sottrae il secondo operando dal primo
/ (divisione) – divide il primo operando per il secondo.
* (moltiplicazione) – moltiplica i due operandi.
% (resto – operatore modulo) – restituisce il resto della divisione tra due operandi.
Facciamo quindi degli esempi:
somma = a + b; //alla variabile somma assegno il risultato di a + b
resto = a % b; //alla variabile resto assegno il resto della divisione di a diviso b.
Gli operatori aritmetici unari si appicano invece ad un solo operando, modificandone il valore.
Ad esempio:
Posti dopo l’operando, quindi come postfissi:
i++; //equivale a scrivere i=i+1;
i–; //equivale a scrivere i=i-1;
Posti prima dell’operando, quindi come prefissi:
++i;
–i;
Facciamo dei semplici esempi:
x = 50;
y = x++;
In questo caso si avrà: y = 50 e x = 51.
Quindi, prima si assegna il valore di x a y e poi si incrementa la x.
Invece se scrivo:
x = 50;
y = ++x;
Prima si incrementa il valore di x e poi si assenga ad y.
In questo caso si avrà: y = 51 e x = 51.
Più avanti parleremo anche di altri tipi di operatori: gli operatori di confronto, gli operatori logici, gli operatori sui bit e gli operatori speciali.
Alcuni link utili
Realizzare un menù di scelta in C
Somma elementi diagonale principale di una matrice
Come sommare gli elementi della cornice esterna
Ricerca elementi in una matrice
Quali metodi per inserire dati in una matrice