[Índice][Previo][Siguiente]
Precedencia de operadores
La interpretación de cualquier expresión en C++ está determinada por la precedencia y asociatividad de los operadores en dicha expresión. Cada operador tiene una precedencia, y los operadores en una expresión se evalúan en orden de mayor a menor precedencia. La evaluación de operadores con la misma precedencia viene determinada por su asociatividad. Y, al igual que en matemáticas, los paréntesis anulan las reglas de precedencia.
En la siguiente tabla se listan los operadores en C++, su precedencia y su asociatividad. Los operadores se listan en orden de prioridad decreciente (los situados más arriba tienen mayor prioridad). Los operadores en la misma línea horizontal tienen la misma precedencia.
Operador | Propósito | Asociatividad
|
---|
:: | Scope (unario) | De derecha a izquierda
| :: | Scope (binario) | De izquierda a derecha
| -> . | Selección de miembros | De izquierda a derecha
| [] | Índices | De izquierda a derecha
| () | Llamada a función | De izquierda a derecha
| ++ | Postincremento | De izquierda a derecha
| -- | Postdecremento | De izquierda a derecha
| sizeof | Tamaño de un objeto | De derecha a izquierda
| ++ | Preincremento | De derecha a izquierda
| -- | Predecremento | De derecha a izquierda
| * & + - ! ~ | Operadores unarios | De derecha a izquierda
| new | Crea un objeto | De derecha a izquierda
| delete | Borra un objeto | De derecha a izquierda
| () | Conversión de tipo (type cast) | De derecha a izquierda
| ->* .* | Puntero a un miembro | De izquierda a derecha
| * / % | Operadores multiplicativos | De izquierda a derecha
| + - | Operadores aditivos | De izquierda a derecha
| << >> | Operadores bitwise | De izquierda a derecha
| < > <= >= | Operadores de relación | De izquierda a derecha
| == != | Operadores de igualdad | De izquierda a derecha
| & | Y bitwise | De izquierda a derecha
| ^ | bitwise O exclusivo | De izquierda a derecha
| | | bitwise O inclusivo | De izquierda a derecha
| && | Y lógico | De izquierda a derecha
| || | O lógico | De izquierda a derecha
| ?: | Operador condicional | De derecha a izquierda
| = *= /= += -= >*gt;=
&= ^= |= %= <<= | Operadores de asignación | De derecha a izquierda
| , | Operador coma | De derecha a izquierda
|
En C++ las reglas de precedencia y asociatividad de operadores corresponden a las reglas matemáticas. Sin embargo, esto no funcionará, por ejemplo, con los operadores bitwise. Para tales operadores, se debe utilizar la tabla anterior, o bien paréntesis.
[Índice][Previo][Siguiente]
|