2
Si analizamos la sentencia siguiente:
var1 = var2 + var3;
estamos diciéndole al programa, por medio del operador +, que
realice la suma del valor de dos variables , y una vez realizado ésto
asigne el resultado a otra variable var1. Esta última operación
(asignación) se indica mediante otro operador, el signo =.
El lenguaje C tiene una amplia variedad de operadores, y todos elloscaen dentro de 6 categorias , a saber :
aritméticos , relacionales, lógicos, incremento y decremento,
manejo de bits y asignacion.
2.4.1 OPERADORES DE ASIGNACION
En principio puede resultar algo inútil gastar papel en describir al operador IGUAL A ( = ), sin
embargo es necesario remarcar ciertas características del mismo .
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 .
El hecho de que estas operaciones se realicen de derecha a izquierda también permite realizarinstrucciones del tipo :a = a + 17 ;significando esto que al valor que TENIA anteriormente a , se
le suma la constante y LUEGO se copia el resultado en la variable .
Como este último tipo de operaciones es por demás común , existe en C un pseudocódigo , con
el fin de abreviarlas .
Así una operación aritmética o de bit cualquiera (simbolizada por OP )a = (a) OP (b) ;puede
escribirse en formaabreviada como :a OP= b ;
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 */
SIMBOLO
DESCRIPCION
EJEMPLO
ORDEN DE
EVALUACION
=
igual a
a=b
13
op=
pseudocodigo
a += b
13
=?:
asig.condicional
a = (c>b)?d:e
12
2.4.2OPERADORES ARITMÉTICOS, DE
RELACIÓN Y LÓGICOS
•
OPERADORES ARITMETICOS
Tal como era de esperarse los operadores aritméticos, mostrados en la TABLA, 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 deltipo 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.
SÍMBOLO
DESCRIPCIÓN
EJEMPLO
ORDEN DE EVALUACIÓN
+
SUMA
a+b
3
-
RESTA
a-b
3
*
MULTIPLICACION
a*b
2
/
DIVISION
a/b
2
%
MODULO
a%b
2
-
SIGNO
-a
2
•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 En la TABLA se encuentra la descripción de los mismos .
Uno de los errores más comunes es confundir el operador relacional IGUAL QUE (= =) con el
de asignacion IGUALA (=). 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.
Los operadores relacionales tiene menor precedencia que los aritméticos , de forma que a < b
+ c se interpreta como a < ( b + c ), pero aunque sea superfluo recomendamos el uso de
paréntesis
a
fin
de
aumentar
la
legilibilidad
del
texto. ...
Regístrate para leer el documento completo.