Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Книга6.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.45 Mб
Скачать

2 Операції та вирази

2.1 Загальні відомості

Комбінація знаків операцій і операндів, результатом якої є певне значення, називається виразом.

Операнд – це те, над чим виконуються операції. У мові С у якості операндів можуть виступати літерали, змінні, елементи масиву, результати виклику функції, вирази. Будь-який операнд, що має константне значення, називається константним виразом. Кожен операнд має тип.

Знаки операцій визначають дії, що повинні бути виконані над операндами. Кожен операнд у виразі може бути виразом. Значення виразу залежить від розташування знаків операцій і круглих дужок у виразі, а також від пріоритету виконання операцій. Пріоритет виконання операцій представлений у таблиці 2.1.

Таблиця 2.1 – Пріоритет виконання операцій

Пріоритет

Операція

Типи операції

Порядок виконання

1

() [] .

Вираз

Зліва направо

2

->- ~ ! * & ++ -- sizeof

Унарні

Справа наліво

3

приведення типу ()

Унарний

Справа наліво

4

* / %

Мультиплікативні

Зліва направо

5

+ -

Адитивні

6

<< >>

Зсув

7

< > <= >=

Відношення

8

== !=

Відношення (рівність)

9

&

Порозрядне «І»

10

^

Порозрядне виключне «АБО»

11

|

Порозрядне «АБО»

12

&&

Логічне «І»

13

||

Логічне «АБО»

14

?:

Умовна

15

= *= /= %= += -= &= |= >>= <<= ^=

Просте і складене присвоєння

Справа наліво

16

,

Послідовне обчислення

Зліва на право

Приклад 2.1. Пріоритет операцій.

int a = 2, b = 3, c = 4, d = 7, e, f;

e = a + b / c + d & a * b - d % a; /* e = 1 */

Порядок виконання операцій у виразі визначається пріоритетом операцій, для прикладу 2.1 зображений на рис. 2.1.

Рисунок 2.1 – Порядок виконання операцій у виразі

Спочатку будуть виконані операції з найвищим пріоритетом, тобто b/c (3/4 = 0) , a*b (2*3 = 6) та d%a (7%2 = 1). Вираз можна переписати, як:

e = a + 0 + d & 6 - 1;

Наступними виконаються адитивні операції a + 0 + d (2+0+7 = 9) та 6 - 1 (=5) і вираз можна переписати як:

e = 9 & 5;

Наступною виконається операція порозрядного «І» 9 & 5 (=1) і останньою операція присвоювання e = 1, в результаті якої змінна e буде містити число 1.

Так як операція «()» має найвищий пріоритет, для зміни пріоритету частини виразу його можна взяти у дужки, таким чином ця частина виразу виконається спочатку. У випадку вкладених дужок в першу чергу виконається вираз у внутрішніх дужках.

Приклад 2.2. Пріоритет операцій.

int a = 2, b = 3, c = 4, d;

d = a + b * c; /* спочатку виконається вираз b * c,

потім результат цього виразу буде до

даний до a, тобто d = 14 */

d = (a + b) * c; /* спочатку виконається вираз a + b, по-

тім результат цього виразу буде помно-

жений на с, тобто d = 20 */

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]