В языке Си существуют следующие логические операции: логическое умножение И — коньюнкция (&&), логическое сложение ИЛИ — дизьюнкция(||), логическое отрицание НЕ (!).
Приоритеты логических операций определяются таблицей приоритетов (Приоритеты операций).
Значением логического выражения является 0 (ложь) или 1 (истина). Значения логических операций определяются в соответствии с таблицами истинности этих операций.
Таблица 1    
операнд 1операнд 2коньюнкция
ложьложьложь
ложьистиналожь
истиналожьложь
истинаистинаистина

Таблица 2    
операнд 1операнд 2дизьюнкция
ложьложьложь
ложьистинаистина
истиналожьистина
истинаистинаистина

Таблица 3    
операндотрицание
ложьистина
истиналожь

Пример 1
Логическое И
(x >= 1) && (x <= 500)
Пример 2
Логическое ИЛИ
(input == 'q') || (input == 'Q')
Пример 3
Логическое отрицание
!(x>y && y>z)
Для эффективности в языке Си вычисляется логическое выражение слева направо и прекращает вычисление, когда истинность значения определена.
Пример 4
(x<y) && (y<z)
Это выражение истинно, если истинно как выражение (x<y), так и выражение (y<z). Если (x<y) ложно, то все выражение должно быть ложно и выражение (y<z) игнорируется.
Пример 5
(x<y) || (y<z)
Это выражение истинно, если истинно либо выражение (x<y), либо выражение (y<z), или если истинны оба выражения. Если (x<y) истинно, все выражение истинно, так что в этом случае не вычисляется истинность выражения (y<z).
Унарная операция ! (НЕ) обращает логическое значение. Если (x< y) ложно, то !(x< y) истинно.