Introducción a los operadores de C y precedencia de operadores
C nos ofrece una amplia variedad de operadores que podemos utilizar para operar con datos.
En particular, podemos identificar varios grupos de operadores:
- operadores aritméticos
- operadores de comparación
- operadores lógicos
- operadores de asignación compuestos
- operadores bit a bit
- operadores de puntero
- operadores de estructura
- operadores varios
En esta entrada del blog voy a detallarlos todos, utilizando 2 variables imaginarias a
y b
como ejemplos.
Dejaré los operadores bit a bit, los operadores de estructura y los operadores de puntero fuera de esta lista, ya que les dedicaré una publicación de blog específica.
Operadores aritméticos
En este macrogrupo voy a separar los operadores binarios y los operadores unarios.
Los operadores binarios funcionan utilizando dos operandos:
Operador | Nombre | Ejemplo |
---|---|---|
= | Asignación | a = b |
+ | Suma | a + b |
- | Sustracción | a - b |
* | Multiplicación | a * b |
/ | División | a / b |
% | Módulo | a % b |
Los operadores unarios solo toman un operando:
Operador | Nombre | Ejemplo |
---|---|---|
+ | Unario más | +a |
- | Menos unario | -a |
++ | Incremento | a++ o++a |
-- | Decremento | a-- o--a |
La diferencia entre a++
y ++a
es que a++
incrementa la a
variable después de usarla. ++a
incrementa la a
variable antes de usarla.
Por ejemplo:
int a = 2;int b;b = a++ /* b is 2, a is 3 */b = ++a /* b is 4, a is 4 */
Lo mismo se aplica al operador de decremento.
Operadores de comparación
Operador | Nombre | Ejemplo |
---|---|---|
== | Operador igual | a == b |
!= | Operador no igual | a != b |
| Más grande que | a b |
| Menos que | a b |
= | Mayor o igual que | a = b |
= | Menor o igual a | a = b |
Operadores lógicos
!
NO (ejemplo:!a
)Y (ejemplo:
a b
)||
O (ejemplo:a || b
)
Estos operadores son excelentes cuando se trabaja con valores booleanos.
Operadores de asignación compuestos
Estos operadores son útiles para realizar una asignación y al mismo tiempo realizar una operación aritmética:
Operador | Nombre | Ejemplo |
---|---|---|
+= | Tarea de suma | a += b |
-= | Tarea de resta | a -= b |
*= | Tarea de multiplicación | a *= b |
/= | Asignación de división | a /= b |
%= | Asignación de módulo | a %= b |
Operadores varios
El operador ternario
El operador ternario es el único operador en C que funciona con 3 operandos y es una forma abreviada de expresar condicionales.
Así es como se ve:
condition ? expression : expression
Ejemplo:
a ? b : c
Si a
se evalúa como true
, entonces b
se ejecuta la instrucción, de lo contrario, c
se ejecuta.
El operador ternario tiene la misma funcionalidad que un condicional if/else, excepto que es más corto de expresar y se puede incluir en una expresión.
tamaño de
El sizeof
operador devuelve el tamaño del operando que se pasa. Se puede pasar una variable o incluso un tipo.
Ejemplo de uso:
#include stdio.hint main(void) { int age = 37; printf("%ldn", sizeof(age)); printf("%ld", sizeof(int));}
Precedencia de operadores
Con todos esos operadores (y más, que no he cubierto en esta publicación, incluidos los operadores bit a bit, los operadores de estructura y los operadores de puntero), debemos prestar atención al usarlos juntos en una sola expresión.
Supongamos que tenemos esta operación:
int a = 2;int b = 4;int c = b + a * a / b - a;
¿Cuál es el valor de c
? ¿Obtenemos que la suma se ejecute antes que la multiplicación y la división?
Hay un conjunto de reglas que nos ayudan a resolver este rompecabezas.
En orden de menor a mayor precedencia tenemos:
- el
=
operador de asignación - los operadores binarios
+
y-
- los operadores
*
y/
- los operadores unarios
+
y-
Los operadores también tienen una regla de asociatividad, que siempre es de izquierda a derecha excepto los operadores unarios y la asignación.
En:
int c = b + a * a / b - a;
Primero ejecutamos a * a / b
, que por ser de izquierda a derecha podemos separar en a * a
y el resultado / b
: 2 * 2 = 4
, 4 / 4 = 1
.
Luego podemos realizar la suma y la resta: 4 + 1 – 2. El valor de c
es 3
.
En todos los casos, sin embargo, quiero asegurarme de que comprendas que puedes usar paréntesis para que cualquier expresión similar sea más fácil de leer y comprender.
Los paréntesis tienen mayor prioridad sobre cualquier otra cosa.
La expresión de ejemplo anterior se puede reescribir como:
int c = b + ((a * a) / b) - a;
y no tenemos que pensar mucho en ello.
Tips C
Tal vez te puede interesar:
- Introducción a React
- Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
- Cómo cambiar el valor de un nodo DOM
- Cómo comprobar si un elemento DOM tiene una clase
Operadores C
Operadores aritméticosOperadores de comparaciónOperadores lógicosOperadores de asignación compuestosOperadores variosPrecedencia de operadores
programar
es
https://aprendeprogramando.es/static/images/programar-operadores-c-2224-0.jpg
2024-11-04
Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente