Condividi tramite


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

Vedere anche

Riferimenti

Operatori di C++

Overload degli operatori