Operatori

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.

Operatori a livello di bit

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

Operatori logici

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.

Operatori di confronto

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

Operatori di valutazione

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.

Operatori aritmetici

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

Operatori stringa

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.