C operatory logiczne
Operatory logiczne wykonać logiczne- A (& &) i logicznych lub ( || ) operacji.
Składnia
I wyrażenie logiczne:
wyrażenie włącznie lubI wyrażenie logiczne & & wyrażenie włącznie lub
wyrażenie logiczne lub:
I wyrażenie logicznewyrażenie logiczne lub |- I wyrażenie logiczne
Operatory logiczne nie wykonują zwykle konwersje arytmetycznych.Zamiast tego ich oceny każdego argumentu z punktu widzenia jej równoważności na 0.Wynik operacji logicznej jest 0 lub 1.Typ wyniku jest int.
C operatory logiczne są opisane poniżej:
Operator |
Opis |
---|---|
& & |
Logiczne- I operator daje wartość 1, jeśli oba operandy wartości niezerowe.Jeśli argument albo jest równa 0, wynik jest równy 0.Jeśli pierwszy argument logiczna- I operacji jest równa 0, drugi operand nie jest sprawdzane. |
|| |
Operator logiczny lub wykonuje operację włącznie lub na jego operandów.Wynik jest równy 0, jeśli oba operandy wartości 0.Jeśli operand albo ma wartość różną od zera, wynikiem będzie liczba 1.Jeśli pierwszy argument operacji logicznych lub ma wartość różną od zera, drugi operand nie jest uwzględniane. |
Operandy logiczne- I i wyrażeń logicznych lub są przetwarzane od lewej do prawej.Jeśli wartość pierwszego operandu jest wystarczające do określenia wyniku operacji, drugi operand nie jest sprawdzane.Jest to nazywane "zwarcie oceny". Po pierwszym argumentem jest punkt sekwencji.Zobacz Punkty sekwencji Aby uzyskać więcej informacji.
Przykłady
Poniższe przykłady ilustrują operatory logiczne:
int w, x, y, z;
if ( x < y && y < z )
printf( "x is less than z\n" );
W tym przykładzie printf do drukowania wiadomości, gdy wywoływana jest funkcja x jest mniejsza niż y i y jest mniejsza niż z.Jeśli x jest większa niż y, drugi operand (y < z) nie jest oceniany i nic nie jest drukowany.Należy zauważyć, że może to spowodować problemy w przypadkach, gdy drugi operand ma efektów ubocznych, które są opiera się jakiegoś innego powodu.
printf( "%d" , (x == w || x == y || x == z) );
W tym przykładzie Jeśli x jest równe albo w, y, lub z, drugi argument printf wynikiem funkcji jest wartość true, a wartość 1 jest drukowany.W przeciwnym razie przyjmuje wartość FAŁSZ i wartość 0 jest drukowany.Tak szybko, jak jeden z warunków jest spełniony, przestaje oceny.