Capitolo 3 - Espressioni e operatori
| Operatore | Esempio | Risultato |
|---|---|---|
| [] | x[y] | array x di y elementi | () | x() | chiamata alla funzione x | . | x.y | riferimento a y di x | -> | x->y | riferimento a y di x (per puntatore) |
| Operatore | Esempio | Risultato |
|---|---|---|
| * | *x | puntatore all'oggetto all'indirizzo x | & | &x | indirizzo della variabile x | - | -x | negativo di x | ~ | ~x | complemento a 1 di x | ++ | (prefisso) | ++x pre-incremento di x | ++ | (postfisso) | x++ post-incremento di x | -- | (prefisso) | --x pre-decremento di x | -- | (postfisso) | x-- post-decremento di x | sizeof | sizeof(x) | numero di byte di x | (tipo) | (t)x | conversione di x in tipo t | ! | !x | NOT logico su x (produce 0 o 1) |
| Operatore | Esempio | Risultato |
|---|---|---|
| = | x = y | y assegnato a x | + | x + y | x più y | - | x - y | x meno y | * | x * y | x volte y | / | x / y | x diviso y | % | x % y | resto di x/y (x modulo y) | > | x > y | 1 se x superiore a y; altrimenti 0 | < | x < y | 1 se x inferiore a y; altrimenti 0 | >= | x >= y | 1 se x superiore o uguale a y; altr. 0 | <= | x <= y | 1 se x inferiore o uguale a y; altr. 0 | == | x == y | 1 se x uguale a y; altrimenti 0 | != | x != y | 1 se x diverso da y; altrimenti 0 | && | x && y | AND logico tra x e y (produce 0 o 1) | || | x || y | OR logico tra x e y (produce 0 o 1) | >> | x >> y | x shiftato a destra di y bit | << | x << y | x shiftato a sinistra di y bit | & | x & y | AND sul bit tra x e y | | | x | y | OR sul bit tra x e y | ^ | x ^ y | XOR (OR esclusivo) sul bit tra x e y | , | e1, e2 | e2 (e1 valutata prima) |
| Operatore | Esempio | Risultato |
|---|---|---|
| ? : | x:e1?e2 | espressione e1 se x diverso da zero, espressione e2 se x uguale a zero |
| Precedenza | Categoria | Operatori | Associatività |
|---|---|---|---|
| 1 | Primari | () [] -> . | sinistra-destra | 2 | Unari | ! ~ ++ -- * & | destra-sinistra | 2 | Unari | (tipo)sizeof | destra-sinistra | 3 | Binari | * / % | sinistra-destra | 4 | Binari | + - | sinistra-destra | 5 | Binari | >> << | sinistra-destra | 6 | Binari | < <= > >= | sinistra-destra | 7 | Binari | == != | sinistra-destra | 8 | Binari | & | sinistra-destra | 9 | Binari | ^ | sinistra-destra | 10 | Binari | | | sinistra-destra | 11 | Binari | && | sinistra-destra | 12 | Binari | || | sinistra-destra | 13 | Condizionali | ?: | destra-sinistra | 14 | Assegnazione | = | destra-sinistra | 15 | Virgola | , | sinistra-destra |

| la moltiplicazione | * | la divisione | / | il modulo | % |
| uguaglianza | = = | non-uguaglianza | ! = |

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

| AND logico | & & | OR logico | | | |

| NOT | ~ | (unario) | AND | & | (binario) | XOR | ^ | (binario) | OR | | | (binario) |


| Operatore | Descrizione | + + x | pre-incremento di x | x + + | post-incremento di x | - - x | pre-decremento di x | x - - | post-decremento di x |
|---|





