Operatori

Operatore di conversione di tipo
Operatori matematici
  Composizione di operatori
  Incremento e decremento
Operatori relazionali
Operatori logici
Operatore condizionale
Precedenza degli operatori

Operatore di conversione di tipo
Una variabile di un tipo può essere usata come variabile di tipo diverso utilizzando l'operatore di conversione.
Per eseguire questa operazione occorre preporre alla variabile da convertire il tipo in cui deve essere convertita tra parentesi tonde

   ... (tipo) variable .. ;
Esempio: divisione decimale tra due interi.
  int x=9,y=10;
  double res;
  res = x/y; //res vale 0 la divisione viene fatta tra interi
  int x=9,y=10;
  double res;
  res = ((double)x)/y; //res vale 0.9
Operatori matematici
= Assegnazione
+ Addizione
- Sottrazione
* Moltiplicazione
/ Divisione
% Resto intero (resto della divisione per un intero)
Es.
  x = 10%3; // x vale 1.

Composizione di operatori (+=,-=,*=,/=,%=)

  x += y;
è equivalente a
  x = x+y;

Incremento e decremento (++,--)

++ è equivalente a +=1
-- è equivalente a -=1
Se l'operatore è prefisso (postfisso) ad una variabile, ++x (x++), il valore è modificato prima (dopo) che l'espressione a cui la variabile appartiene sia valutata:

  b = 2;
  a = ++b;
  // a vale 3, b vale 3
  b = 2;
  a = b++;
  // a vale 2, b vale 3

Operatori relazionali (==,!=,<,<=,>,>=)

== Uguale
!= Diverso
> Maggiore
Minore
>= Maggiore o uguale
<= Minore o uguale
Es.
  7==5 // condizione falsa
  a>=6 // se a=10 condizione vera

Operatori logici (!,&&,||)

! Negazione logica (NOT)
&& AND logico
|| OR logico

Operatore ternario
L'operatore ternario valuta un'espressione ed esegue una diversa istruzione a seconda che l'espressione sia vera (istruzione_1) o falsa (istruzione_2). Il suo formato è

  condizione ? istruzione_1 : istruzione_2;
  a > b ? max=a : max=b; // ritorna il maggiore tra a e b.

Precedenza degli operatori
La precedenza degli operatori indica l'ordine in cui l'operatore è utilizzato.
Ad esempio:

  int res;
  res = 1+2*3;  //res vale 7
non è equivalente a
  int res;
  res = (1+2)*3; //res vale 9
perché l'operatore * ha precedenza sull'operatore + (quando si hanno dubbi le parentesi assicurano la corretta esecuzione dell'operazione).
Tabella riassuntiva della precedenza degli operatori
gli operatori nello stesso gruppo hanno stessa precedenza e precedenza maggiore rispetto a quella degli operatori nel gruppo sottostante.
operatore nome
! not logico

* moltiplicazione
/ divisione
% modulo

+ addizione
- sottrazione

< minore di
<= minore o uguale a
> maggiore di
>= maggiore o uguale a

== uguale a
!= diverso da

&& and logico

|| or logico

= assegnazione
*= moltiplica ed assegna
/= dividi ed assegna
%= modulo ed assegna
+= somma ed assegna
-= sottrai ed assegna