Operador Prioridad y Asociatividad
El lenguaje C++ incluye todos los operadores de C y agrega varios operadores nuevos.Los operadores especifican una evaluación que se realizará en una de las siguientes:
un operando (operador unario)
dos operandos (operador binario)
tres operandos (operador ternario)
Los operadores siguen una prioridad estricta, que define el orden de evaluación de las expresiones que contienen estos operadores.Asociar de los operadores con la expresión de la izquierda o la expresión de la derecha; esto se denomina “asociatividad.” La tabla siguiente muestra la prioridad y la asociatividad de los operadores de C++ (de la precedencia de mayor a menor).Los operadores en el mismo segmento de la tabla tienen prioridad igual y se evalúan en el orden especificado en una expresión a menos que explícitamente son forzados por paréntesis.
Operador Prioridad y Asociatividad de C++
Operador |
nombre o significado |
Asociatividad |
---|---|---|
:: |
Resolución de ámbito |
None |
|
|
|
. |
Selección de miembro (objeto) |
De izquierda a derecha |
–> |
Selección de miembro (puntero) |
De izquierda a derecha |
[ ] |
Subíndices de matriz |
De izquierda a derecha |
( ) |
Inicialización del miembro de la llamada de función |
De izquierda a derecha |
++ |
Postfijo de incremento |
De izquierda a derecha |
–– |
Postfijo de decremento |
De izquierda a derecha |
typeid( ) |
nombre de tipo |
De izquierda a derecha |
const_cast |
conversión de tipo (conversión) |
De izquierda a derecha |
dynamic_cast |
conversión de tipo (conversión) |
De izquierda a derecha |
reinterpret_cast |
conversión de tipo (conversión) |
De izquierda a derecha |
static_cast |
conversión de tipo (conversión) |
De izquierda a derecha |
|
|
|
sizeof |
Tamaño del objeto o de tipo |
De derecha a izquierda |
++ |
Prefijo de incremento |
De derecha a izquierda |
–– |
Prefijo de decremento |
De derecha a izquierda |
~ |
Complemento de uno |
De derecha a izquierda |
! |
negación lógica |
De derecha a izquierda |
– |
Operador unario menos |
De derecha a izquierda |
+ |
Operador unario más |
De derecha a izquierda |
& |
dirección de |
De derecha a izquierda |
* |
Direccionamiento indirecto |
De derecha a izquierda |
new |
cree el objeto |
De derecha a izquierda |
delete |
destruya el objeto |
De derecha a izquierda |
( ) |
Conversión de tipos explícita |
De derecha a izquierda |
|
|
|
.* |
puntero a miembro (objetos) |
De izquierda a derecha |
–>* |
puntero a miembro (punteros) |
De izquierda a derecha |
|
|
|
* |
Multiplicación |
De izquierda a derecha |
/ |
División |
De izquierda a derecha |
% |
Módulo |
De izquierda a derecha |
|
|
|
+ |
Adición |
De izquierda a derecha |
– |
Resta |
De izquierda a derecha |
|
|
|
<< |
Desplazamiento a la izquierda |
De izquierda a derecha |
>> |
Desplazamiento a la derecha |
De izquierda a derecha |
|
|
|
< |
Menor que |
De izquierda a derecha |
> |
Mayor que |
De izquierda a derecha |
<= |
Menor o igual que |
De izquierda a derecha |
>= |
Mayor o igual que |
De izquierda a derecha |
|
|
|
== |
Igualdad |
De izquierda a derecha |
!= |
Desigualdad |
De izquierda a derecha |
|
|
|
& |
AND bit a bit |
De izquierda a derecha |
|
|
|
^ |
OR exclusivo bit a bit |
De izquierda a derecha |
|
|
|
| |
OR inclusivo bit a bit |
De izquierda a derecha |
|
|
|
&& |
AND lógico |
De izquierda a derecha |
|
|
|
|| |
OR lógico |
De izquierda a derecha |
|
|
|
expr1 ? expr2 : expr3 |
Condicional |
De derecha a izquierda |
|
|
|
= |
Asignación |
De derecha a izquierda |
*= |
Asignación de multiplicación |
De derecha a izquierda |
/= |
Asignación de división |
De derecha a izquierda |
%= |
Asignación de módulo |
De derecha a izquierda |
+= |
Asignación de suma |
De derecha a izquierda |
–= |
Asignación de resta |
De derecha a izquierda |
<<= |
asignación de Izquierdo-MAYÚS |
De derecha a izquierda |
>>= |
asignación de Derecho-MAYÚS |
De derecha a izquierda |
&= |
Asignación AND bit a bit |
De derecha a izquierda |
|= |
Inclusivo bit a bit OR asignación |
De derecha a izquierda |
^= |
OR EXCLUSIVO bit a bit asignación |
De derecha a izquierda |
|
|
|
throwexpr |
expresión throw |
De derecha a izquierda |
|
|
|
, |
Coma |
De izquierda a derecha |