В языке Си специального логического типа нет, вместо него используются переменные целого типа. Значению "истина" соответствует любое ненулевое целое число, значению "ложь" - ноль. Например, в Си допустим такой фрагмент программы:
int b;
float s;
...
if (b!= 0)
{
s = 1;
}
Здесь целочисленная переменная b используется в качестве условного выражения в операторе if ("если"). Если значение b отлично от нуля, то выполняется тело оператора if, т.е. переменной s присваивается значение 1; если значение b равно нулю, то тело оператора if не выполняется.
В языке С используется обычный набор операций отношений: < (меньше), <= (меньше или равно), > (больше), >= (больше или равно), == (равно) и!= (не равно).
К логическим операциям относятся логическое И или логическое умножение (&&), логическое ИЛИ или логическое сложение (две вертикальные палки), исключающее ИЛИ (^) и логическое отрицание (!).
Если операнд операции отрицания равен нулю, то результат операции будет равен единице; если же значение операнда отлично от нуля, результат операции будет равен нулю.
|
|
Операция логического умножения дает значение «истинно», если оба операнда истинны, т.е. отличны от нуля; в противном случае результат операции будет равен нулю, т.е. ложен.
Логическое сложение вырабатывает значение истинно, если хотя бы один из операндов истинен и ложно в противном случае.
Операция исключающего ИЛИ дает истинное значение, если операнды имеют противоположные значения (истинно и ложно), и ложное значение, когда оба операнда одновременно ложны или истинны.
По сравнению с операциями отношения они имеют меньший приоритет. В качестве операндов могут использоваться данные любого типа.