Як ми вже знаємо з попередніх уроків, вираз — це математичний об’єкт, який генерує певне значення. Однак, термін “математичний об’єкт” трохи розпливчастий. Точніше буде так: вираз — це комбінація літералів, змінних, функцій і операторів, які генерують певне значення.
Літерали
Літерал — це фіксоване значення, яке записується безпосередньо у вихідному коді (наприклад, 7
чи 3.14159
). Ось приклад програми, яка використовує літерали:
1 2 3 4 5 6 7 8 |
#include <iostream> int main() { int a = 3; // a – це змінна, а 3 – це літерал std::cout << 5 + 2; // 5 + 2 – це вираз, а 5 і 2 – це літерали std::cout << "Hello, world!"; // "Hello, world" – це також літерал } |
Літерали, змінні і функції відомі ще як операнди. Операнди — це дані, з якими працює вираз. Літерали мають фіксовані значення, змінним можна присвоювати значення, функції ж генерують певні значення (в залежності від типу повернення, винятком є функції типу void).
Оператори
Останнім пазлом у виразах є оператори. З їх допомогою ми можемо об’єднувати операнди для отримання нового значення. Наприклад, у виразі 5 + 2
, +
є оператором. За допомогою +
ми об’єднали операнди 5
і 2
для отримання нового значення (7
).
Ви, ймовірно, вже добре знайомі зі стандартними арифметичними операторами зі шкільної математики:
додавання (+
);
віднімання (-
);
множення (*
);
ділення (/
).
Знак рівності =
є оператором присвоювання. Деякі оператори складаються більш ніж з одного символу, наприклад, оператор рівності ==
, який дозволяє порівнювати між собою два певних значення.
Примітка: Дуже часто початківці плутають оператор присвоювання (=
) з оператором рівності (==
). За допомогою оператора присвоювання (=
) ми присвоюємо змінній певне значення. За допомогою оператора рівності (==
) ми перевіряємо, чи рівні між собою два конкретних операнди.
Оператори бувають трьох типів:
Унарні, які працюють з одним операндом. Наприклад, оператор −
(мінус). У виразі −7
, оператор −
застосовується тільки до одного операнду (7
) для генерації нового значення (−7
).
Бінарні, які працюють з двома операндами (лівим і правим). Наприклад, оператор +
. У виразі 5 + 2
, оператор +
працює з лівим операндом (5
) і правим (2
) для генерації нового значення (7
).
Тернарні, які працюють з трьома операндами. У мові C++ є тільки один тернарний оператор.
Зверніть увагу, деякі оператори можуть мати кілька значень. Наприклад, оператор −
(мінус) може використовуватися в двох контекстах: як унарний оператор для зміни знаку числа (наприклад, конвертувати 7
в −7
і навпаки), і як бінарний для виконання арифметичної операції віднімання (наприклад, 4 − 3
).