Operadores
El lenguaje C tiene una amplia variedad de operadores, y
todos ellos caen dentro de 6 categorías, a saber: aritméticos, relacionales,
lógicos, incremento y decremento, manejo de bits y asignación.
Operadores de Asignación
Es válido escribir a
= 17; pero no es aceptado, en cambio 17
= a; /* incorrecto */
Ya que la constante numérica 17 no posee una ubicación de memoria donde alojar al valor de a.
Ya que la constante numérica 17 no posee una ubicación de memoria donde alojar al valor de a.
Aunque parezca un poco extraño al
principio las asignaciones, al igual que las otras operaciones, dan un
resultado que puede asignarse a su vez a otra expresión. De la misma forma que (a + b) es evaluada y
su resultado puedo copiarlo en otra variable : c = (a + b) ; una asignación (a
= b) da como resultado el valor de b , por lo que es lícito escribir c = ( a =
b ) ;Debido a que las asignaciones se evalúan de derecha a izquierda , los
paréntesis son superfluos , y podrá escribirse entonces :c = a = b = 17; con lo
que las tres variables resultarán iguales al valor de la contante .
Como este último tipo de
operaciones es por demás común, existe en C un pseudocódigo , con el fin de
abreviarlas.
Por ejemplo:
a += b ;
/* equivale : a = a + b */
a -= b
; /* equivale : a = a - b */
a *= b ; /*
equivale : a = a * b */
a /= b ; /*
equivale : a = a / b */
a %= b; /* equivale : a = a % b */
Operadores aritméticos
Los operadores aritméticos, comprenden
las cuatro operaciones básicas, suma, resta, multiplicación y división, con un agregado,
el operador módulo. El operador módulo (%) se utiliza para calcular el resto
del cociente entre dos enteros, y no puede ser aplicado a variables del tipo
float ó double. Si bien la precedencia
(orden en el que son ejecutados los operadores) se analizará más adelante, en
este capítulo, podemos adelantar algo sobre el orden que se realizan las
operaciones aritméticas.
Operadores de Relación
Todas las operaciones relacionales dan sólo dos posibles resultados : VERDADERO ó FALSO . En el lenguaje C, Falso queda representado por un valor entero nulo (cero) y Verdadero por cualquier número distinto de cero. Uno de los errores más comunes es confundir el operador relacional IGUAL QUE (= =) con el de asignacion IGUAL A (=). La expresión a=b copia el valor de b en a, mientras que a = = b retorna un cero , si a es distinto de b ó un número distinto de cero si son iguales.
Operadores Lógicos
Hay tres operadores que realizan
las conectividades lógicas Y (AND), O (OR) y NEGACION (NOT).
Los resultados de la operaciones
lógicas siempre adoptan los valores CIERTO ó FALSO. La evaluación de las
operaciones lógicas se realiza de izquierda a derecha y se interrumpe cuando se
ha asegurado el resultado. El operador negación invierte el sentido lógico de las operaciones , así será !( a >> b ) equivale a ( a < b ) !( a == b ) " "
( a != b ) etc. En algunas
operaciones suele usárselo de una manera que se presta a confusión, por ejemplo:
(!i) donde i es un entero. Esto dará
un resultado CIERTO si i tiene un
valor 0 y un resultado FALSO si i es
distinto de cero.
Operadores de Incremento y Decremento
Para visualizar rápidamente la función de los operadores antedichos,
digamos que las sentencias: a = a + 1 ; a++ ;tienen una acción idéntica , de la
misma forma que a = a - 1 ; a-- ;es decir incrementa y decrementa a la variable
en una unidad. Si bien estos operadores
se suelen emplear con variables int , pueden ser usados sin problemas con
cualquier otro tipo de variable . Así si
a es un float de valor 1.05 , luego de hacer a++ adoptará el valor de 2.05 y de
la misma manera si b es una variable del tipo char que contiene el caracter 'C'
, luego de hacer b-- su valor será 'B'.
No hay comentarios:
Publicar un comentario