Операції відношення.
У Сі використовується той же набір операцій відношення, що і в Паскале. Слід лише звернути увагу на відмінність в записі операцій «рівно» і «не рівно».
< менше
<= менше або рівно
> більше
>= більше або рівно
= = рівно
! = не рівно.
Як вже говорилося раніше, в стандарті Сі немає логічного типу даних. Тому результатом операції відношення є ціле число: якщо відношення істинне — те 1, якщо помилково — те 0.
Приклади відношень:
а<0, 101>=105, 'а'=='А', 'а"='А'
Результатом другого і третього стосунків буде 0 — брехня; результат четвертого відношення дорівнює 1 — істина; результат першого відношення залежить від значення змінної а.
Логічні операції.
Три основні логічні операції в мові Сі записуються інакше, ніж в Паскале.
! операція заперечення (НЕ)
&& кон'юнкція, логічне множення (И)
| | диз'юнкція, логічне складання (ЧИ).
Правила їх виконання визначаються таблицею істинності.
Наприклад, логічний вираз, що відповідає системі нерівностей 0 < х < 1 в програмі на Сі запишеться у вигляді наступного логічного виразу:
х>0 && х<1
Зверніть увагу на ту обставину, що тут не знадобилися круглі дужки для виділення операцій відношення. На відміну від Паскаля, де операції відношення мають найнижчий пріоритет, в Сі операції відношення старше кон'юнкції і диз'юнкції. По убуванню пріоритету логічні операції і операції відношення розташовані в наступному порядку:
!
> < >= <=
== !=
&&
||
Окрім розглянутих в Сі є порозрядні логічні операції. Ці операції виконуються над кожною парою відповідних двійкових розрядів внутрішнього представлення операндів. Їх ще називають бітовими логічними операціями. Знаки бітових логічних операцій :
& порозрядна кон'юнкція (И)
| порозрядна диз'юнкція (ЧИ)
^ що порозрядне, що виключає АБО
~ порозрядне заперечення (НЕ).
Бітові логічні операції разом з операціями порозрядного зрушення вліво (<<) і управо (>>) дозволяють дістатися до кожного біта внутрішнього коду. Найчастіше такі дії доводиться виконувати в системних програмах. У цьому посібнику ми їх розглядати не будемо.
Операція привласнення.
Те, що привласнення в Сі є операцією, а не оператором, виявляється, напевно, найбільшою несподіванкою для знавців Паскаля. А тим часом це дійсно так! Знак операції привласнення =. Наслідком відміченого факту є те, що привласнення, як будь-який інший знак операції, може кілька разів входити у вираження. Наприклад:
а=b=з=х+у;
Привласнення має найнижчий пріоритет (нижче тільки у операції «кома»). Крім того, операція привласнення — правоассоціативна. Це означає, що дещо підряд розташованих привласнень виконуються справа наліво. Тому в приведеному вище вираженні першої виконається операція складання, потім змінною з привласниться значення суми, потім це значення привласниться змінній b і у кінці — змінній а.
У мові Сі є додаткові операції привласнення, що поєднують привласнення з виконанням інших операцій. Серед них: +=, -=, /=, *=, %=. Пріоритет у них такий же, як і у простого привласнення. Приклади використання цих операцій :
Помітимо, що замість вираження а=а+2 прийнятніше писати в програмі а+=2, оскільки друге вираження обчислюватиметься швидше.
Операція явного перетворення типу (операція «тип»). Застосування цієї операції має наступний формат: