Cerca nel sito:
ricerca
avanzata

Frasi Celebri...

Per quante lacrime si possano spargere, alla fine ci si deve sempre soffiare il naso.

Heinrich Heine 

Sondaggio:

Quale sistema operativo preferite?

Linux
Windows
DOS
MacOs
UNIX

visualizza risultati


 

Altri operatori

Le espressioni, per quanto visto sopra, rappresentano un elemento basilare del C++, tant'e` che il linguaggio fornisce un ampio insieme di operatori.
La tabella che segue riassume brevemente quasi tutti gli operatori del linguaggio, per completarla dovremmo aggiungere alcuni particolari operatori di conversione di tipo per i quali si rimanda all'appendice A.

SOMMARIO DEGLI OPERATORI

:: risolutore di scope
.
->
[ ]
( )
( )
++
--
selettore di campi
selettore di campi
sottoscrizione
chiamata di funzione
costruttore di valori
post incremento
post decremento
sizeof
++
--
~
!
-
+
&
*
new
new[ ]
delete
delete[ ]
( )
dimensione di
pre incremento
pre decremento
complemento
negazione
meno unario
piu` unario
indirizzo di
dereferenzazione
allocatore di oggetti
allocatore di array
deallocatore di oggetti
deallocatore di array
conversione di tipo
.*
->*
selettore di campi
selettore di campi
*
/
%
moltiplicazione
divisione
modulo (resto)
+
-
somma
sottrazione
<<
>>
shift a sinistra
shift a destra
<
<=
>
>=
minore di
minore o uguale
maggiore di
maggiore o uguale
==
!=
uguale a
diverso da
& AND di bit
^ OR ESCLUSIVO di bit
| OR INCLUSIVO di bit
&& AND logico
|| OR logico (inclusivo)
? : espressione condizionale
=
*=
/=
%=
+=
-=
<<=
>>=
&=
|=
^=
assegnamento semplice
moltiplica e assegna
divide e assegna
modulo e assegna
somma e assegna
sottrae e assegna
shift sinistro e assegna
shift destro e assegna
AND e assegna
OR inclusivo e assegna
OR esclusivo e assegna
throw lancio di eccezioni
, virgola

 

Gli operatori sono raggruppati in base alla loro precedenza: in alto quelli a precedenza maggiore. Gli operatori unari e quelli di assegnamento sono associativi a destra, gli altri a sinistra. L'ordine di valutazione delle sottoespressioni che compongono una espressione piu` grande non e` definito, ad esempio nell'espressione

 

Pippo = 10*13 + 7*25;

 

non si sa quale tra 10*13 e 7*25 verra` valutata per prima (si noti che comunque verranno rispettate le regole di precedenza e associativita`).

Gli operatori di assegnamento e quelli di (auto)incremento e (auto)decremento sono gia` stati descritti, esamineremo ora l'operatore per le espressioni condizionali.

L'operatore ? : e` l'unico operatore ternario:

 

<Cond> ? <Expr1> : <Expr2>

 

La semantica di questo operatore non e` molto complicata: Cond puo` essere una qualunque espressione che produca un valore booleano (Vedi paragrafo successivo), se essa e` verificata il risultato di tale operatore e` la valutazione di Expr1, altrimenti il risultato e` Expr2.

Per quanto riguarda gli altri operatori, alcuni saranno esaminati quando sara` necessario; non verranno invece discussi gli operatori logici e quelli di confronto (la cui semantica viene considerata nota al lettore). Rimangono gli operatori per lo spostamento di bit, ci limiteremo a dire che servono sostanzialmente a eseguire moltiplicazioni e divisioni per multipli di 2 in modo efficiente.

 

 

successivo
–«  INDICE  »–

 

 

 

 
Powered by paper&pencil (carta&matita ) - Copyright © 2001-2019 Cataldo Sasso