Compartilhar via


Operador AND lógico: &&

expression && expression

Comentários

O operador AND lógico (&&) retorna o valor booliano true se os dois ambos operandos forem true e retorna false de outra forma. Os operandos são convertidos implicitamente no 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 ser do mesmo tipo, mas devem ser de tipo integral ou ponteiro. Os operandos são geralmente expressões relacionais ou de igualdade.

O primeiro operando é completamente avaliado e todos os efeitos colaterais são concluídos antes de continuar a avaliação da expressão AND lógica.

O segundo operando é avaliado somente se o primeiro operando for avaliado como true (diferente de zero). Essa avaliação elimina a avaliação desnecessária do segundo operando quando a expressão AND lógica for false. Você pode usar a avaliação de curto-circuito para evitar a remoção de referência do ponteiro nulo, conforme mostrado no seguinte exemplo:

char *pch = 0;
...
(pch) && (*pch = 'a');

Se pch for nulo (0), o lado direito da expressão nunca será avaliado. Portanto, a atribuição por meio de um ponteiro nulo é impossível.

Palavra-chave do operador para &&

O operador and é o equivalente de texto de &&. Há duas maneiras de acessar o operador and nos programas: incluir o arquivo de cabeçalho iso646.h ou compilar com a opção do compilador /Za (Desabilitar extensões de linguagem).

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

Referência

Operadores lógicos

Operadores C++

Operadores, precedência e associatividade C++

Operadores lógicos C