Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Operador AND lógico:
Sintaxis
logical-and-expression:
equality-expression
logical-and-expression
&&
equality-expression
Observaciones
El operador AND lógico (&&) devuelve true si ambos operandos son true y devuelven false de lo contrario. Los operandos se convierten implícitamente al tipo bool antes de la evaluación y el resultado es de tipo bool. AND lógico tiene asociatividad de izquierda a derecha.
Los operandos al operador LÓGICO AND no necesitan tener el mismo tipo, pero deben tener un tipo booleano, entero o puntero. Los operandos suelen ser expresiones relacionales o de igualdad.
El primer operando se evalúa completamente y todos los efectos secundarios se completan antes de que la evaluación de la expresión AND lógica continúe.
El segundo operando solo se evalúa si el primer operando se evalúa como true (distinto de cero). Esta evaluación elimina la evaluación innecesaria del segundo operando cuando la expresión AND lógica es false. Puede usar esta evaluación de cortocircuito para evitar la desreferenciación de punteros NULL, como se muestra en el ejemplo siguiente:
char *pch = 0;
// ...
(pch) && (*pch = 'a');
Si pch es null (0), nunca se evalúa el lado derecho de la expresión. Esta evaluación de cortocircuito hace que la asignación a través de un puntero nulo sea imposible.
Palabra clave operator para &&
C++ especifica and como una ortografía alternativa para &&. En C, la ortografía alternativa se proporciona como una macro en el <encabezado iso646.h> . En C++, la ortografía alternativa es una palabra clave; uso de <iso646.h> o el ciso646> equivalente <de C++ está en desuso. En Microsoft C++, se requiere la /permissive- opción del compilador o /Za para habilitar la ortografía alternativa.
Ejemplo
// expre_Logical_AND_Operator.cpp
// compile with: /EHsc
// Demonstrate logical AND
#include <iostream>
using namespace std;
int main() {
int a = 5, b = 10, c = 15;
cout << boolalpha
<< "The true expression "
<< "a < b && b < c yields "
<< (a < b && b < c) << endl
<< "The false expression "
<< "a > b && b < c yields "
<< (a > b && b < c) << endl;
}
Consulte también
Operadores integrados de C++, precedencia y asociatividad
Operadores lógicos de C