sábado, 27 de febrero de 2016


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.

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'.  


Jerarquía de operadores




No hay comentarios:

Publicar un comentario