Logický operátor: & &
expression && expression
Poznámky
Logický operátor (& &) vrací booleovskou hodnotu true Pokud jsou oba operandy true a vrátí false jinak.Operandy jsou implicitně převést na typ bool předchozího hodnocení a výsledek je typu bool.Logické a má asociativitu zleva doprava.
Operandy s logickým operátorem AND nemusí být stejného typu, ale musí být typu integrál nebo ukazatel.Operandy jsou běžně relační nebo výrazy rovnosti.
První operand úplně vyhodnoceny a před pokračováním logického výrazu a hodnocení jsou dokončeny všechny vedlejší účinky.
Druhý operand je vyhodnocena pouze v případě, že první operand vyhodnocen jako true (nenulové).Toto hodnocení eliminuje nepotřebné hodnocení druhým operandem při logického výrazu a hodnotu false.Můžete použít zkratové hodnocení zabránit v přesměrování ukazatele s hodnotou null, jak ukazuje následující příklad:
char *pch = 0;
...
(pch) && (*pch = 'a');
Pokud pch má hodnotu null (0), v pravé části výrazu nikdy vyhodnoceny.Proto je nemožné přiřazení pomocí ukazatele null.
Klíčové slovo operátor pro & &
a operátor je ekvivalentní textu & &.Existují dva způsoby přístupu a operátor v programech: zahrnout záhlaví souboru iso646.h, nebo kompilace s /Za volba kompilátoru (zakázat 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;
}