Operadores

El lenguaje C se distingue de otros lenguajes por la gran cantidad de operadores que posee. Además de los operadores aritméticos comunes:

Suma Resta Multiplicación División Módulo
+ - * / %
Nota: El operador % es el resto de la división entera entre dos números. Por ej.: 7 % 3 = 1.

tenemos operadores relacionales ( <, >, <=, >= ), de igualdad ( ==, != ) que generan a partir de valores numéricos un valor de verdadero o falso. Como hemos visto la clase anterior, en el lenguaje C no existen tipos de variables que permitan contener este tipo de valores, así es que son representados a través de valores enteros y la convención es que un valor de 0 es falso y cualquier otro valor es verdadero; los operadores lógicos !, &&, || (not, and, or) que permiten armar expresiones lógicas complejas a partir de valores de verdad (por ej: a<=0 && b>c || ! (c==a && b!= -1)) y muchos mas que iremos viendo a lo largo del curso.

Entre los operadores existen reglas de precedencia y asociatividad, que son las que determinan el órden en que se realizan las operaciones dentro de una expresión compleja. La siguiente tabla contiene todos los operadores y sus relaciones.

Precedencia Operadores Asociatividad
Alta
()   []   ->   .   (post)++   (post)--
de izq. a der.
 
++(pre)   --(pre)   !   ~   sizeof(type)    +(signo)   -(signo)   &(dirección)   *(indirección)
de der. a izq.
 
*   /   %
de izq. a der.
 
+   -
de izq. a der.
 
<<   >>
de izq. a der.
 
<   <=   >   >=
de izq. a der.
 
==   !=
de izq. a der.
 
&
de izq. a der.
 
^
de izq. a der.
 
|
de izq. a der.
 
&&
de izq. a der.
 
||
de izq. a der.
 
?:
de der. a izq.
 
=  +=  -=  *=  /=  %=  >>=   <<=   &=  ^=  |=
de der. a izq.
Baja
,
de izq. a der.

Intimidante, ¿no? Bueno, en realidad basta con recordar que los paréntesis tienen la más alta precedencia, así que cuando tengas alguna duda sólo tenés que usarlos para forzar a que las operaciones se realicen en el orden que vos querés.


ICOM