Операции отношения и логические операции

Операции сравнения: == (равно), != (не равно), <, >, <=, >= используются при сравнении двух выражений. Результатом такого сравнения могут быть значения true (истина) или false (ложь). Однако результатом логического вы­ражения может являться и целочисленное арифметическое значение. При этом значение 0 расценивается как false, а любое ненулевое значение — как true. Рас­смотрим пример: int tr, fal; tr = (101<=105); fal= (101>105);

В результате выполнения этих операторов переменная tr получит значение 1, а переменная fal станет равной 0.

Не следует путать операторы типа if (A = =2)...;

и

if (A =2).;

Оба эти оператора верны, так как в C любое выражение, имеющее некоторое значение, может использоваться в условных операторах. Но если в первом слу­чае значение логического выражения может быть как истинным, так и ложным, в зависимости от значения переменной А, то во втором случае значение логиче­ского выражения всегда истинно, так как в результате присваивания значение А равно двум и не является нулевым.

В С имеется три логические операции:

&& — логическое И (AND)

|| — логическое ИЛИ (OR)

! — логическое НЕ (NOT)

Логические операции в языке С соответствуют классическим логическим операциям, а их результат — соответствующим таблицам истинности.

Операции присваивания

 

Особенностью обычного оператора присваивания является то, что он

и допускает многократное использование, например:

a=b=c=x*y;

Выполняются операции присваивания справа налево, т. е. сначала вычисляется значение выражения x*y, затем это значение присваивается c, потом b и лишь затем а.

Кроме обычного присваивания, все прочие являются составными опера­циями. Они присваивают переменной, стоящей слева, результат применения простой операции, указанной перед символом «=», к обоим операндам.

Например, выражение X+=Y эквивалентно выражению X=X+Y, но запи­сывается компактнее и выполняется быстрее.