Operatori Aritmetici (superiori)
Operatori aritmetici
[modifica]Quando scrivo l'espressione 3+4 il + e' un operatore (quello dell'addizione) e i numeri 3 e 4 sono gli operandi .
Se scrivo a/b il / e' l'operatore di divisione e le variabili a e b sono gli operandi della divisione
Nel C gli operatori artmetici sono:
+ addizione
- sottrazione
* moltiplicazione
/ divisione , in questo caso c'e' una piccola nota se gli operandi sono variabili di tipo intero (short, int , long) la divisione restituisce solo il quoziente (quindi niente decimali) e per ricavare il resto bisogna usare l'operatore % (detto operatore modulo), se invece faccio la divisione (operatore / )fra due numeri di tipo virgola mobile (float o double) ottengo il risultato con gli eventuali decimali
Quindi se a=7 e b=2 e questi sono numeri interi ho
c=a/b; e allora c assume il valore 3 (quoziente)
c=a%b; e allora c assume il valore 1 (resto)
se invece a=7 e b=2 ma le variabili sono di tipo float allora
c=a/b; assegna alla variabile il valore 3.5 mentre
c=a%b; non ha senso perche' l'operatore modulo lavora solo su tipi di dato interi (attenzione ho scritto tipi di dato , non valori)
Gli operatori che abbiamo visto sono operatori binari perche' lavorano su due operandi alla volta.Ci sono anche operatori unari (un solo operando, in matematica pensate al simbolo - per invertire il segno) come il ++ e il -- e
poi c'e' anche un solo operatore ternario il ? , questi operatori nuovi li vedremo più avanti. Ricordate inoltre che come in matematica anche nel C esiste una priorità nell'esecuzione degli operatori (prima */ di +-) che può essere modificata con l'uso delle parentesi , ed esiste anche l'associatività da destra e quella da sinistra.
L'operatore ++ serve a incrementare una variabile di una unità e può essere prefisso o postfisso , cioe' posto davanti a una variabile o posto dopo la variabile. Se scrivo
a++;
oppure
++a;
ottengo lo stesso risultato.Per capire la differenza del prefisso o postfisso dobbiamo utilizzarlo all'interno di una espressione di calcolo .Nel caso del prefisso prima si incrementa la variabile e poi si valuta il valore dell'espressione, quindi ;
a=5; c=++a+2; cout<<a<<c;
stampa i valori a=6 c=8;
mentre se uso la notazione postfissa prima si valuta l'espressione e solo successivamente si incrementa la variabile , detto in altri modo si calcola l'espressione come se l'operatore ++ non ci fosse , e poi si incrementa di uno la variabile quindi
a=5; c=2+a++; cout<<a<<c;
stampa i valori a=6 c=7;
potevo impartire il comando anche come
a=5; c=a+++2; cout<<a<<c;
stampa i valori a=6 c=7;
analogamente l'operatore -- serve per decrementare una variabile di una unità e può essere prefisso o postfisso.
nel C esistono anche gli operatori
+= -= *= /=
scrivere a=a+3; e' equivalente a scrivere a+=3;
scrivere a=a-3; e' equivalente a scrivere a-=3;
scrivere a=a*3; e' equivalente a scrivere a*=3;
scrivere a=a/3; e' equivalente a scrivere a/=3;
per incrementare una variabile di una unità posso anche scrivere
inc(a);
se la a valeva 3 adesso dopo l'istruzione inc vale 4