У цьому посібнику ви дізнаєтесь про перевагу та асоціативність операторів за допомогою прикладів.
Перевага операторів
Пріоритет операторів визначає, який оператор виконується першим, якщо у виразі є більше одного оператора.
Давайте розглянемо приклад:
int x = 5 - 17* 6;
У C пріоритет *вище, ніж -і =. Отже, 17 * 6оцінюється спочатку. Тоді вираз, що включає -, обчислюється як пріоритет -вище, ніж у =.
Ось таблиця переваги операторів від вищого до нижчого. Властивість асоціативності буде обговорено найближчим часом.
Таблиця переваги та асоціативності операторів
| Оператор | Значення оператора | Асоціативність |
|---|---|---|
| () () -> . | Функціональний виклик Посилання на елемент масиву Непрямий вибір члена Прямий вибір члена | Зліва направо |
| ! ~ + - ++ - & * розмір (тип) | Логічне заперечення Побітове (1) доповнення Унарне плюс Унарне мінус Збільшення Дерементування (Адреса) Посилання на покажчик Повертає розмір об'єкта Typecast (перетворення) | Справа наліво |
| * / % | Помножте ділити залишок | Зліва направо |
| + - | Двійковий плюс (Додавання) Двійковий мінус (віднімання) | Зліва направо |
| << >> | Ліва зміна Права зміна | Зліва направо |
| < <= > > = | Менше, ніж менше або рівне Більше, ніж більше або рівне | Зліва направо |
| == ! = | Дорівнює Не дорівнює | Зліва направо |
| & | Побітове І | Зліва направо |
| ^ | Побітовий ексклюзив АБО | Зліва направо |
| | | Побітове АБО | Зліва направо |
| && | Логічне І | Зліва направо |
| || | Логічне АБО | Зліва направо |
| ?: | Умовний оператор | Справа наліво |
| = * = / = % = + = - = & = = | = << = >> = | Просте призначення Призначити продукт Призначити фактор Призначити залишок Призначити суму Призначити різницю Призначити побітове І Присвоїти побітове XOR Призначити побітове АБО Призначити лівий зсув Призначити правий зсув | Справа наліво |
| , | Розділювач виразів | Зліва направо |
Асоціативність операторів
Асоціативність операторів визначає напрямок, в якому оцінюється вираз. Наприклад,
b = a;
Тут значення a присвоюється b, а не навпаки. Це тому, що асоціативність =оператора знаходиться справа наліво.
Крім того, якщо присутні два оператори з однаковим пріоритетом (пріоритетом), асоціативність визначає напрямок, в якому вони виконуються.
Давайте розглянемо приклад:
1 == 2! = 3
Тут оператори ==і !=мають однаковий пріоритет. І їх асоціативність зліва направо. Отже, 1 == 2виконується першим.
Вираз вище еквівалентний:
(1 == 2)! = 3
Примітка: Якщо в операторі є кілька операторів, ви можете скористатися дужками, ()щоб зробити код більш читабельним.








