Prioridades de las operaciones

Aquí está la tabla completa de todas las operaciones por orden de prioridad.

P

Símbolos

Descripción

Ejemplo

Orden de ejecución

0

::

Resolución de contexto

n1:: n2

I-D

1

()

Agrupación

(e1)

I-D

1

[]

Índice

[e1]

I-D

1

.

Desreferenciación

n1.n2

I-D

1

++

Post-incremento

e1++

I-D

1

--

Post-decremento

e1--

I-D

2

!

Negación lógica NOT

!e1

D-I

2

~

Complemento a nivel de bits (inversión)

~e1

D-I

2

+

Unario más

+e1

D-I

2

-

Unario menos

-e1

D-I

2

++

Incremento prefijo

++e1

D-I

2

--

Decremento prefijo

--e1

D-I

2

(tipo)

Conversión de tipos

(n1)

D-I

2

&

Obtención de la dirección

&n1

D-I

3

*

Multiplicación

e1 * e2

I-D

3

/

División

e1 / e2

I-D

3

%

Módulo de división

e1 % e2

I-D

4

+

Adición

e1 + e2

I-D

4

-

Resta

e1 - e2

I-D

5

<<

Desplazamiento a la izquierda

e1 << e2

I-D

5

>>

Desplazamiento a la derecha

e1 >> e2

I-D

6

<

Menos

e1 < e2

I-D

6

>

Mayor

e1 > e2

I-D

6

<=

Menor o igual que

e1 <= e2

I-D

6

>=

Mayor o igual que

e1 >= e2

I-D

7

==

Igualdad

e1 == e2

I-D

7

!=

No es igual

e1 != e2

I-D

8

&

AND a nivel de bits

e1 & e2

I-D

9

^

OR exclusivo a nivel de bits

e1 ^ e2

I-D

10

|

OR a nivel de bits

e1 | e2

I-D

11

&&

AND lógico

e1 && e2

I-D

12

||

OR lógico

e1 || e2

I-D

13

?:

Ternario condicional

c1 ? e1: e2

D-I

14

=

Asignación

e1 = e2

D-I

14

+=

Suma con asignación

e1 += e2

D-I

14

-=

Resta con asignación

e1 -= e2

D-I

14

*=

Multiplicación con asignación

e1 *= e2

D-I

14

/=

División con asignación

e1 /= e2

D-I

14

%=

Módulo de división con asignación

e1 %= e2

D-I

14

<<=

Desplazamiento a la izquierda con asignación

e1 <<= e2

D-I

14

>>=

Desplazamiento a la derecha con asignación

e1 >>= e2

D-I

14

&=

AND a nivel de bits con asignación

e1 &= e2

D-I

14

|=

OR a nivel de bits con asignación

e1 |= e2

D-I

14

^=

AND/OR a nivel de bits con asignación

e1 ^= e2

D-I

15

,

Coma

e1, e2

I-D

Como hemos visto, los corchetes se utilizan para especificar los índices de los elementos del array y, por lo tanto, tienen una de las prioridades más altas.

Además de los operadores que se han visto anteriormente, aquí hay algunos todavía desconocidos.

Descubriremos el operador resolución de contexto '::' dentro de la programación orientada a objetos (POO). También necesitaremos al mismo tiempo el operador de desreferenciación '.'. Los identificadores de tipos (clases) y sus propiedades, no las expresiones, actúan como sus operandos.

El operador de obtención de direcciones '&' sirve para pasar los parámetros de la función mediante referenciación y obtener las direcciones de objetos en la POO. En ambos casos, el operador se aplica a una variable (LValue).

Las operaciones explícitas de conversión de tipos se abordarán en el capítulo siguiente.