Compartilhar via


Operador lógico and: & &

expression && expression

Comentários

O operador lógico and (& &) retorna o valor booleano true se os dois operandos forem true e retorna false contrário.Os operandos são implicitamente convertidos para o tipo bool antes da avaliação e o resultado são do tipo bool.E lógico tem associatividade da esquerda para a direita.

Os operandos do operador lógico AND não precisam ser do mesmo tipo, mas eles devem ser do tipo da integrais ou de ponteiro.Os operandos são comumente relacionais ou expressões de igualdade.

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

O segundo operando é avaliado apenas se o primeiro operando é avaliado como verdadeiro (diferente de zero).Essa avaliação elimina avaliação desnecessária do segundo, quando a expressão lógica AND é false.Você pode usar esse circuito curto de avaliação para evitar que a referência de ponteiro de null, como mostrado no exemplo a seguir:

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

Se pch é nula (0), o lado direito da expressão nunca é avaliado.Portanto, a atribuição através de um ponteiro nulo é impossível.

Palavra-chave de operador para & &

O e operador é o equivalente de texto do & &.Há duas maneiras para acessar o e operador em seus programas: inclua o arquivo de cabeçalho iso646.h, ou compilar com o /Za opção de compilador (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 do C++

Operadores do C++

Precedência e associatividade de operadores

C operadores lógicos