Operadores lógicos de C
Los operadores lógicos realizan operaciones lógicas-AND (&&) y OR lógica (||).
Sintaxis
lógico-AND-expresión:
inclusivo-O-expresióninclusivo-O-expresión de && de la lógico-AND-expresión
lógico-O-expresión:
lógico-AND-expresiónlógico-O-expresión || lógico-AND-expresión
Los operadores lógicos no realizan conversiones aritméticas usuales.En su lugar, se evalúa cada operando en términos de su equivalencia en 0.el resultado de una operación lógica es 0 o 1.El tipo del resultado es int.
Los operadores lógicos de C se describen a continuación:
Operador |
Descripción |
---|---|
&& |
El operador AND lógico presenta el valor 1 si ambos operandos tienen valores distintos de cero.Si alguno es igual a 0, el resultado es 0.Si el primer operando de una operación AND es igual a 0, el segundo operando no se evalúa. |
|| |
El operador lógico OR realiza inclusivo-O la operación en sus operandos.el resultado es 0 si ambos operandos tienen valores 0.si cualquier operando tiene un valor distinto de cero, el resultado es 1.Si el primer operando de una operación OR lógica tiene un valor distinto de cero, el segundo operando no se evalúa. |
Los operandos de expresiones lógicas-AND y OR lógica se evalúan de izquierda a derecha.Si el valor del primer operando es suficiente para determinar el resultado de la operación, el segundo operando no se evalúa.Esto se denomina “evaluación cortocircuitada”. Hay un punto de secuencia después del primer operando.Vea puntos de secuencia para obtener más información.
Ejemplos
Los ejemplos siguientes se muestran los operadores lógicos:
int w, x, y, z;
if ( x < y && y < z )
printf( "x is less than z\n" );
En este ejemplo, la función de printf se denomina para imprimir un mensaje si x es menor que y y y es menor que z.si x es mayor que y, se imprime el segundo operando (y < z) no se evalúa y nada.Observe que esto podría producir problemas en caso de que el segundo operando tiene efectos secundarios que están confiar en por algún otro motivo.
printf( "%d" , (x == w || x == y || x == z) );
En este ejemplo, si x es igual a w, a y, o a z, el segundo argumento de la función de printf se evalúa como true y se imprime el valor 1.Si no, se evalúa como false y se imprime el valor 0.Tan pronto como una de las condiciones se evalúe como true, la evaluación cesa.