Nella tabella seguente sono elencati tutti gli operatori ULP, in ordine di precedenza. Gli operatori unari hanno la precedenza più alta, la virgola quella più bassa:
| Unario | ! ~ + - ++ -- |
| Moltiplicativo | * / % |
| Additivo | + - |
| Tenere premuto MAIUSC e fare clic sull'immagine | << >> |
| Relazionale | < <= > >= |
| Uguaglianza | == != |
| AND a livello di bit | & |
| XOR a livello di bit | ^ |
| OR a livello di bit | ` |
| AND logico | && |
| OR logico | ` |
| Condizionale | ?: |
| Assegnazione | = *= /= %= += -= &= ^= |
| Virgola | , |
L'associatività è da sinistra a destra per tutti gli operatori, ad eccezione di Unario, Condizionale e Assegnazione, la cui associatività è da destra a sinistra.
L'ordine di precedenza normale degli operatori può essere modificato mediante l'uso di parentesi.
Gli operatori a livello di bit funzionano solo con tipi di dati carattere e int.
Unario:
| ~ | Complemento a livello di bit (1's) |
Binario:
| << | Spostamento a sinistra |
| >> | Spostamento a destra |
| & | AND a livello di bit |
| ^ | XOR a livello di bit |
| ` | ` |
Assegnazione:
| &= | Assegnazione AND a livello di bit |
| ^= | Assegnazione XOR a livello di bit |
| ` | =` |
| <<= | Assegnazione spostamento a sinistra |
| >>= | Assegnazione spostamento a destro |
Gli operatori logici possono utilizzare espressioni di qualsiasi tipo di dati.
Unario:
| ! | NOT logico |
Binario:
| && | AND logico |
| ` |
L'utilizzo di un'espressione di stringa con un operatore logico verifica se la stringa è vuota.
L'utilizzo di un tipo di oggetto con un operatore logico verifica se l'oggetto contiene dati validi.
Gli operatori di confronto utilizzano espressioni di qualsiasi tipo di dati, ad eccezione dei tipi di oggetto.
| < | Minore di |
| <= | Minore di o uguale a |
| > | Maggiore di |
| >= | Maggiore di o uguale a |
| == | Uguale a |
| != | Non uguale a |
Gli operatori di valutazione vengono utilizzati per valutare le espressioni in base a una condizione o per raggruppare una sequenza di espressioni e per valutarle come un'unica espressione.
| ?: | Condizionale |
| , | Virgola |
L'operatore Condizionale viene utilizzato per prendere una decisione all'interno di un'espressione, come in
int a;
// ...code that calculates 'a'
string s = a ? "True" : "False";
che è sostanzialmente uguale a
int a;
string s;
// ...code that calculates 'a'
if (a)
s = "True";
else
s = "False";
Il vantaggio dell'operatore condizionale è che può essere utilizzato in un'espressione.
L'operatore Virgola viene utilizzato per valutare una sequenza di espressioni da sinistra verso destra, utilizzando il tipo e il valore dell'operando destro come risultato.
Si noti che anche gli argomenti in una chiamata di funzione e in più dichiarazioni di variabile utilizzano virgole come delimitatori, anche se in questo caso non si tratta di un operatore di virgola.
Gli operatori aritmetici utilizzano tipi di dati carattere, int e reali (tranne ++, —, % e %=).
Unario:
| + | Addizione unaria |
| - | Sottrazione unaria |
| ++ | Pre o post-incremento |
| -- | Pre- o post-decremento |
Binario:
| * | Moltiplica |
| / | Dividi |
| % | Restante (modulo) |
| + | Addizione binaria |
| - | Sottrazione binaria |
Assegnazione:
| = | Assegnazione semplice |
| *= | Assegnazione prodotto |
| /= | Assegnazione quoziente |
| %= | Assegnazione restante (modulo) |
| += | Assegnazione somma |
| -= | Assegnazione differenza |
Gli operatori stringa utilizzano i tipi di dati char, int e string. L'operando sinistro deve sempre essere di tipo string.
Binario:
| + | Concatenazione |
Assegnazione:
| = | Assegnazione semplice |
| += | Aggiunta a stringa |
L'operatore + concatena due stringhe o aggiunge un carattere alla fine di una stringa e restituisce la stringa risultante.
L'operatore += aggiunge una stringa o un carattere alla fine di una determinata stringa.