Precedencia de los operadores
La prioridad de los operadores en C++ determina el orden en que se evalúan las operaciones en una expresión. Esto es importante porque puede afectar el resultado de la expresión.
En C++, la prioridad de los operadores se presenta en una tabla de mayor a menor precedencia. Dentro de un mismo nivel de precedencia, la asociatividad determina el orden de evaluación de izquierda a derecha o de derecha a izquierda.
Tabla de precedencia de operadores en C++:
| Nivel | Operadores | Asociatividad |
|---|---|---|
| 1 | Paréntesis (()) | Izquierda a derecha |
| 2 | Potenciación (^) | Derecha a izquierda |
| 3 | Multiplicación (*), División (/), Módulo (%) | Izquierda a derecha |
| 4 | Suma (+), Resta (-) | Izquierda a derecha |
| 5 | Menor que (<), Mayor que (>), Menor o igual que (<=), Mayor o igual que (>=) | Izquierda a derecha |
| 6 | Igualdad (==), Desigualdad (!=) | Izquierda a derecha |
| 7 | And lógico (&&) | Izquierda a derecha |
| 8 | Or lógico ( || ) | |
| 9 | Asignación (=, +=, -=, *=, /=, %=, &=, ` | =,^=,<<=,>>=`) |
| 10 | Operador condicional ternario (?:) | Derecha a izquierda |
| 11 | Precedencia de tipo (por ejemplo, sizeof, . para punteros y miembros de la clase) | Izquierda a derecha |
| 12 | Coma (,) | Izquierda a derecha |
Ejemplo de uso de la tabla de precedencia:
En la siguiente expresión:
C++
a + b * c / d - e ^ f
Se evaluará primero la potencia (f ^ e), luego la multiplicación (b * c), la división ((b * c) / d), la suma (a + (b * c / d)), y finalmente la resta ((a + (b * c / d)) - e).
Comentarios
Publicar un comentario