Lenguaje C

Los distintos operadores permiten formar expresiones tanto aritm�ticas como l�gicas. Los operadores aritm�ticos y l�gicos son:

Operadores Descripci�n
+, - Suma, resta
++, -- Incremento, decremento
*, /, % Multiplicaci�n, divisi�n, m�dulo
>>, << Rotaci�n de bits a la derecha, izquierda.
& AND booleano
| OR booleano
^ XOR booleano
~ Complemento a 1
! Complemento a 2, NOT l�gico
==, != Igualdad, desigualdad
&&, || AND, OR l�gico
<, <= Menor, menor o igual
>, >= Mayor, mayor o igual

En estos operadores deben tenerse en cuenta la precedencia de operadores y las reglas de asociatividad, que son las normales en la mayor�a de lenguajes. Se debe consultar el manual de referencia para obtener una explicaci�n detallada. Adem�s hay toda una serie de operadores aritm�ticos con asignaci�n, como pueden ser += y ^=.

En la evaluaci�n de expresiones l�gicas, los compiladores normalmente utilizan t�cnicas de evaluaci�n r�pida. Para decidir si una expresi�n l�gica es cierta o falsa muchas veces no es necesario evaluarla completamente. Por ejemplo una expresi�n formada <exp1> || <exp2>, el compilador eval�a primero <exp1> y si es cierta, no eval�a <exp2>. Por ello se deben evitar construcciones en las que se modifiquen valores de datos en la propia expresi�n, pues su comportamiento puede depender de la implementaci�n del compilador o de la optimizaci�n utilizada en una compilaci�n o en otra. Estos son errores que se pueden cometer f�cilmente en C ya que una asignaci�n es tambi�n una expresi�n.

Debemos evitar: if (( x++ > 3 ) || ( x < y ))

y escribir en su lugar: x++; if (( x > 3 ) || ( x < y ))

Hay un tipo especial de expresi�n en C que se denomina expresi�n condicional y est� representada por los operadores ? : . Su utilizaci�n es como sigue: <e> ? <x> : <y>. Se eval�a si e entonces x; si no, y.

int mayor ( int a, int b ) {
  return ( a > b ) ? TRUE : FALSE;
}

waste_time () {
  float a, b = 0.0;
  ( b > 0.0 ) ? sin(M_PI / 8) : cos(M_PI / 4);
}

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR