Operadores

2009/07/11
En C hay cuatro clases de operadores:
  • Aritméticos
  • Relacionales
  • Lógicos
  • De bits

Operadores aritméticos

Todos sin excepción conocemos desde nuestros primeros años los operadores aritméticos: suma, resta, multiplicación, división. En C, estos operadores no cambian respecto a lo que ya conocemos. Empero, hay que decir que se agregan unos operadores más.

+
-
*
/
%
++
--

El operador % (a veces llamado mod) se utiliza para conocer el residuo en una división.
Así, 5%2 = 1 (se lee "cinco mod 2 igual a uno").

++ y -- se utilizan para incrementar en 1 o disminuir en 1 a una variable. Se escriben de la siguiente forma:
variable++ ó ++variable

La sutil diferencia entre colocar ++ o -- antes o después del nombre de la variable, se explica así: si el operador precede al operando, se realiza primero la operación (sumar o restar 1) antes de utilizar el valor del operando. Es decir, si x = 5, ++x hará que x tome el valor 6 directamente. En cambio x++ hará que x tome como valor 5, luego 6, 7, 8..., y así hasta que se quiera.

Usualmente, la precedencia es:
++ --
* / %
+ -

Significa que en una expresión, digamos, algo como 5 * 5 * 5 + 4 / 2, primero se resolverían las multiplicaciones, luego la división, y finalmente se sumaría lo uno a lo otro. En ocasiones es conveniente utilizar paréntesis para manipular la precedencia.


Operadores relacionales y lógicos

Los operadores relacionales tratan de las relaciones -eso fue redundante- de un número con otro (5 > 2, que produce Verdadero), mientras que los lógicos tratan de la unión de las relaciones (5 > 2 y 20 > 19, es decir verdadero y verdadero = verdadero).

En C, 0 representa falso, y cualquier otro número, verdadero.

Lista de operadores relacionales:

> (mayor)
>= (mayor o igual)
< (menor)
<= (menor o igual)
== (igual*)
!= (distinto)

"==" es para comparaciones, mientras que "=" es para asignar un valor. Cuidado con esto.

Lista de operadores lógicos:

&& (And)
|| (Or)
! (Not)

Precedencia:

!
> >= < <=
== !=
&& ||

Una expresión compuesta en donde existan operadores aritméticos, relacionales y lógicos, se revolverá precisamente en ese orden.

Ejemplo: 2 + 3 < 5 * 6 && 99 - 100 == 5.

Se resolvería ordenadamente del siguiente modo.

1) 5 < 30 && -1 == 5
2) Falso (0) && Falso (0)
3) Falso AND Falso produce Falso como respuesta a toda la expresión.

Sobre los operadores de bits se hablará adelante. Muy, muy adelante...

0 comentarios:

Publicar un comentario