Логические операции
Логические операции и выражения были подробно рассмотрены в разделе 1.4.4. В Си используются следующие обозначения для логических операций:
|| логическое "или" (логическое сложение) && логическое "и" (логическое умножение) ! логическое "не" (логическое отрицание)
Логические константы "истина" и "ложь" обозначаются через true и false (это ключевые слова языка). Примеры логических выражений:
bool a, b, c, d; int x, y;
a = b || c; // логическое "или" d = b && c; // логическое "и" a = !b; // логическое "не" a = (x == y); // сравнение в правой части a = false; // ложь b = true; // истина c = (x > 0 && y != 1); // c истинно, когда // оба сравнения истинны
Самый высокий приоритет у операции логического отрицания, затем следует логическое умножение, самый низкий приоритет у логического сложения.
Чрезвычайно важной особенностью операций логического сложения и умножения является так называемое "сокращенное вычисление" результата. А именно, при вычислении результата операции логического сложения или умножения всегда сначала вычисляется значение первого аргумента. Если оно истинно в случае логического сложения или ложно в случае логического умножения, то второй аргумент операции не вычисляется вовсе! Результат операции полагается истинным в случае логического сложения или ложным в случае логического умножения. Подробно это рассмотрено в разделе 1.4.4.