Logický operátor AND: &&
expression && expression
Poznámky
Logický operátor AND (&&) vrátí logickou hodnotu true, jsou-li oba operandy vyhodnoceny na hodnotu true, jinak vrátí hodnotu false.Operandy jsou před vyhodnocením implicitně převáděny na typ bool, přičemž výsledek je také typu bool.Logická operace AND je asociativní zleva doprava.
Operandy logického operátoru AND nemusí být stejného typu, musí však být typy celého čísla nebo ukazatele.Operandy jsou obvykle relační výrazy nebo výrazy rovnosti.
První operand je zcela vyhodnocen a před pokračováním ve vyhodnocování logického výrazu AND jsou dokončeny všechny vedlejší účinky.
Druhý operand je vyhodnocen, pouze pokud je první operand vyhodnocen jako true (nenulový).Toto vyhodnocení eliminuje zbytečné vyhodnocení druhého operandu, když má logický výraz hodnotu false.Tímto způsobem lze zabránit odkazování ukazatele null, jak je znázorněno v následujícím příkladu:
char *pch = 0;
...
(pch) && (*pch = 'a');
Pokud má proměnná pch hodnotu null (0), není pravá strana výrazu nikdy vyhodnocena.Proto je přiřazení pomocí ukazatele null nemožné.
Klíčové slovo pro operátor &&
Operátor and je textovým ekvivalentem zápisu &&.V aplikacích existují dva způsoby přístupu k operátoru and: Zahrnutím souboru hlaviček iso646.h nebo kompilací s možností kompilátoru /Za (zakáže rozšíření jazyka).
Příklad
// 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;
}