Precedenza e associatività di operatore
Il linguaggio C++ include tutti gli operatori c# e aggiungere molti nuovi operatori.Gli operatori specificano una valutazione da eseguire su una delle seguenti:
un operando (operatore unario)
due operandi (operatore binario)
tre operandi (operatore ternario)
Gli operatori seguono una precedenza rigida, che definisce l'ordine di valutazione delle espressioni che contengono questi operatori.Gli operatori eseguono l'associazione all'espressione sul pulsante sinistro o l'espressione alla destra; questa operazione è detta “associatività.„ Nella tabella seguente vengono illustrati la precedenza e l'associazione degli operatori C++ (l'ordine di precedenza minima).Gli operatori nello stesso segmento della tabella hanno precedenza uguale e vengono valutati nell'ordine specificato in un'espressione a meno che in modo esplicito imposto da parentesi.
Precedenza e associatività di operatore C++
Operatore |
nome o significato |
Associazione |
---|---|---|
:: |
Risoluzione ambito |
Nessuno |
|
|
|
. |
Selezione dei membri (oggetto) |
Da sinistra a destra |
–> |
Selezione dei membri (puntatore) |
Da sinistra a destra |
[ ] |
L'indice di matrice |
Da sinistra a destra |
( ) |
Inizializzazione dei membri di chiamata di funzione |
Da sinistra a destra |
++ |
Incremento suffisso |
Da sinistra a destra |
–– |
Decremento suffisso |
Da sinistra a destra |
typeid( ) |
nome del tipo |
Da sinistra a destra |
const_cast |
cast di tipo (conversione) |
Da sinistra a destra |
dynamic_cast |
cast di tipo (conversione) |
Da sinistra a destra |
reinterpret_cast |
cast di tipo (conversione) |
Da sinistra a destra |
static_cast |
cast di tipo (conversione) |
Da sinistra a destra |
|
|
|
sizeof |
dimensione di oggetto o di tipo |
Da destra a sinistra |
++ |
Incremento prefisso |
Da destra a sinistra |
–– |
Decremento prefisso |
Da destra a sinistra |
~ |
Complemento di uno |
Da destra a sinistra |
! |
logico non |
Da destra a sinistra |
– |
L'operatore meno unario |
Da destra a sinistra |
+ |
unario più |
Da destra a sinistra |
& |
Indirizzo-di |
Da destra a sinistra |
* |
Riferimento indiretto |
Da destra a sinistra |
new |
creare l'oggetto |
Da destra a sinistra |
delete |
Eliminare l'oggetto |
Da destra a sinistra |
( ) |
Cast |
Da destra a sinistra |
|
|
|
.* |
Puntatore a membro (oggetti) |
Da sinistra a destra |
–>* |
Puntatore a membro (puntatori) |
Da sinistra a destra |
|
|
|
* |
Moltiplicazione |
Da sinistra a destra |
/ |
Divisione |
Da sinistra a destra |
% |
Modulo |
Da sinistra a destra |
|
|
|
+ |
Addizione |
Da sinistra a destra |
– |
Sottrazione |
Da sinistra a destra |
|
|
|
<< |
Spostamento a sinistra |
Da sinistra a destra |
>> |
Spostamento a destra |
Da sinistra a destra |
|
|
|
< |
Minore di |
Da sinistra a destra |
> |
Maggiore di |
Da sinistra a destra |
<= |
Minore o uguale a |
Da sinistra a destra |
>= |
Maggiore o uguale a |
Da sinistra a destra |
|
|
|
== |
Uguaglianza |
Da sinistra a destra |
!= |
Disuguaglianza |
Da sinistra a destra |
|
|
|
& |
AND bit per bit |
Da sinistra a destra |
|
|
|
^ |
OR esclusivo bit per bit |
Da sinistra a destra |
|
|
|
| |
OR inclusivo bit per bit |
Da sinistra a destra |
|
|
|
&& |
AND logico |
Da sinistra a destra |
|
|
|
|| |
OR logico |
Da sinistra a destra |
|
|
|
expr1 ? expr2 : expr3 |
Condizionale |
Da destra a sinistra |
|
|
|
= |
Assegnazione |
Da destra a sinistra |
*= |
assegnazione di moltiplicazione |
Da destra a sinistra |
/= |
assegnazione di divisione |
Da destra a sinistra |
%= |
Assegnazione di modulo |
Da destra a sinistra |
+= |
Assegnazione di addizione |
Da destra a sinistra |
–= |
assegnazione di sottrazione |
Da destra a sinistra |
<<= |
assegnazione di Lasciare-MAIUSC |
Da destra a sinistra |
>>= |
Assegnazione di spostamento a destra |
Da destra a sinistra |
&= |
AND bit per bit assegnazione |
Da destra a sinistra |
|= |
Incluso l'operatore OR bit per bit assegnazione |
Da destra a sinistra |
^= |
Exclusive OR bit per bit assegnazione |
Da destra a sinistra |
|
|
|
throwexpr |
espressione throw |
Da destra a sinistra |
|
|
|
, |
Virgola |
Da sinistra a destra |