Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Operador AND lógico:
Sintaxe
logical-and-expression:
equality-expression
logical-and-expression
&&
equality-expression
Observações
O operador AND lógico (&&) retornará true se ambos os operandos forem true e retornarem false de outra forma. Os operandos são convertidos implicitamente em tipo bool antes da avaliação e o resultado é do tipo bool. O AND lógico tem associatividade da esquerda para a direita.
Os operandos para o operador AND lógico não precisam ter o mesmo tipo, mas devem ter tipo booliano, integral ou ponteiro. Os operandos geralmente são expressões relacionais ou de igualdade.
O primeiro operando é completamente avaliado e todos os efeitos colaterais são concluídos antes que a avaliação da expressão AND lógica continue.
O segundo operando será avaliado somente se o primeiro operando for avaliado true como (diferente de zero). Essa avaliação elimina a avaliação desnecessária do segundo operando quando a expressão AND lógica é false. Você pode usar essa avaliação de curto-circuito para impedir a desreferenciação de ponteiro nulo, conforme mostrado no exemplo a seguir:
char *pch = 0;
// ...
(pch) && (*pch = 'a');
Se pch for nulo (0), o lado direito da expressão nunca será avaliado. Essa avaliação de curto-circuito torna a atribuição por meio de um ponteiro nulo impossível.
Palavra-chave do operador para &&
O C++ especifica and como uma ortografia alternativa para &&. Em C, a ortografia alternativa é fornecida como uma macro no <cabeçalho iso646.h> . No C++, a ortografia alternativa é uma palavra-chave; o uso de <iso646.h> ou do c++ equivalente <ciso646> foi preterido. No Microsoft C++, a opção /permissive- ou /Za compilador é necessária para habilitar a ortografia alternativa.
Exemplo
// 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 também
Operadores internos, precedência e associação do C++
Operadores lógicos C