Operator logiczny AND: &&
expression && expression
Uwagi
Logiczny operator AND (&&) zwraca wartość logiczną true, jeśli oba operandy mają wartość true i zwraca wartość false w przeciwnym przypadku.Operandy są niejawnie konwertowane na typ bool przed ich obliczeniem, a wynik jest typu bool.Operator logiczny AND ma zespolenie od lewej do prawej.
Operandy operatora logicznego AND nie muszą być tego samego typu, ale muszą być typu całkowitego lub wskaźnikowego.Operandy są najczęściej wyrażeniami relacyjnymi lub równościowymi.
Pierwszy operand jest obliczany całkowicie, a wszystkie skutki uboczne są kończone przed kontynuowaniem obliczania wyrażenia logicznego AND.
Drugi operand jest obliczany tylko, jeśli pierwszy operand zostanie obliczony na wartość "true" (niezerową).Takie obliczenie eliminuje konieczność obliczania drugiego operandu, gdy wyrażenie logiczne AND ma wartość "false".Możesz użyć tych zwartych obliczeń, aby zapobiegać usuwaniu odwołania ze wskaźnika o wartości null, jak pokazano w następującym przykładzie:
char *pch = 0;
...
(pch) && (*pch = 'a');
Jeśli pch ma wartość null (0), to prawa strona wyrażenia nie jest nigdy obliczana.Z tego powodu, przypisanie przez wskaźnik o wartości null jest niemożliwe.
Słowo kluczowe operatora &&
Operator and jest równoważnym, tekstowym odpowiednikiem operatora &&.Istnieją dwa sposoby dostępu do operatora and w programach: dołączenie pliku nagłówkowego iso646.h lub kompilacja z opcją kompilatora /Za (wyłącz rozszerzenia języka).
Przykład
// 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;
}