Comprensión de la precedencia y asociatividad de los operadores C:una guía clara
Precedencia de operadores
La precedencia de los operadores determina qué operador se ejecuta primero si hay más de un operador en una expresión.
Consideremos un ejemplo:
int x = 5 - 17* 6;
En C, la precedencia de * es mayor que - y = . Por lo tanto, 17 * 6 se evalúa primero. Entonces la expresión que involucra - se evalúa como la precedencia de - es mayor que el de = .
Aquí hay una tabla de precedencia de operadores de mayor a menor. La propiedad de la asociatividad se discutirá en breve.
Tabla de precedencia y asociatividad de operadores
[]
->
.Llamada funcional
Referencia de elemento de matriz
Selección indirecta de miembros
Selección directa de miembros¡De izquierda a derecha!
~
+
-
++
--
&
*
tamaño de
(tipo) Negación lógica
Complemento bit a bit (1's)
más unario
Unary minus
incremento
Decremento
Desreferencia (Dirección)
Referencia de puntero
Devuelve el tamaño de un objeto.
Encasillado (conversión)De derecha a izquierda*
/
%Multiplicar
dividir
RestoDe izquierda a derecha+
-Binario más (Suma)
Menos binario(resta)De izquierda a derecha<<
>>Desplazamiento a la izquierda
Desplazamiento a la derechaDe izquierda a derecha<
<=
>
>=Menos de
Menor o igual
mayor que
Mayor o igual queDe izquierda a derecha==
!=Igual a
No igual aDe izquierda a derecha&Bit a derecha Y De izquierda a derecha^Exclusivo bit a bit O De izquierda a derecha|Bit a derecha O De izquierda a derecha&&Lógico ANDDe izquierda a derecha||Lógico O ¿De izquierda a derecha?:Operador condicionalDe derecha a izquierda=
*=
/=
%=
+=
-=
&=
^=
|=
<<=
>>=Asignación sencilla
Asignar producto
Asignar cociente
Asignar resto
Asignar suma
Asignar diferencia
Asignar bit a bit Y
Asignar XOR bit a bit
Asignar bit a bit O
Asignar desplazamiento a la izquierda
Asignar desplazamiento a la derechaDe derecha a izquierda,Separador de expresionesDe izquierda a derecha
Asociatividad de Operadores
La asociatividad de los operadores determina la dirección en la que se evalúa una expresión. Por ejemplo,
b = a;
Aquí el valor de a se asigna a b y no al revés. Es porque la asociatividad del = operador es de derecha a izquierda.
Además, si están presentes dos operadores de la misma precedencia (prioridad), la asociatividad determina la dirección en la que se ejecutan.
Consideremos un ejemplo:
1 == 2 != 3
Aquí, los operadores == y != tienen la misma precedencia. Y su asociatividad es de izquierda a derecha. Por lo tanto, 1 == 2 se ejecuta primero.
La expresión anterior equivale a:
(1 == 2) != 3
Nota: Si una declaración tiene múltiples operadores, puede usar paréntesis () para hacer el código más legible.
Tabla de contenidos
Lenguaje C
- Operadores de C#
- Tutorial de matriz de C#:crear, declarar, inicializar
- C - Configuración del entorno
- Descripción general de C++
- Cree, pruebe e implemente con .NET:la plataforma de desarrollo multiplataforma, de código abierto y gratuita
- C# - Atributos
- C - Sintaxis básica
- Funciones virtuales de C++
- C - E/S de archivo
- Sobrecarga de operadores de C++
- Matrices C