Operaтори в C++Типи з прикладом
⚡ Розумний підсумок
Operaтори в C++ – це символи, які виконують операції над операндами, починаючи від арифметичних дій та порівняння і закінчуючи логічними, побітовими діями та діями присвоєння. У цьому ресурсі пояснюється кожна категорія операторів із прикладами програм, виводом та правилами пріоритету, які визначають порядок обчислення.
Які Operaторс?
Оператор — це символ, що використовується для виконання операцій над операндами. Оператор оперує над операндами, і ці операції можуть бути математичними або логічними. Існують різні типи операторів у C++ для виконання різних операцій.
Розглянемо наступну операцію:
a = x + y;
У наведеному вище операторі x і y є операндами, тоді як + є оператором додавання. Коли C++ компілятор зустрічає наведений вище оператор, він додасть x і y і збереже результат у змінній a.
Типи Operaтори в C++
Є в основному 6 різних типів операторів C++:
- Арифметика Operaторс
- Реляційний Operaторс
- логічний Operaторс
- Побітовий Operaторс
- Призначення Operaторс
- Інше Operaторс
Почнемо з арифметичних операторів, найпоширенішої категорії.
Арифметика Operaторс
Це типи операторів, які використовуються для виконання математичних/арифметичних операцій. Вони включають:
| Operaтор | Опис |
|---|---|
| + оператор додавання | Додає два операнди. |
| – підрядtracоператор ції | нижчеtracтс 2nd операнд від 1st операнд. |
| * оператор множення | Перемножує 2 операнди. |
| / оператор ділення | Ділить чисельник на знаменник. |
| % оператор модуля | Повертає остачу після ділення. |
| ++ оператор приросту | Збільшує ціле значення на 1. |
| — оператор декременту | Зменшує ціле значення на 1. |
Наприклад:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; int c; cout << "a + b is :" << a+b << endl; //11+5 cout << "a - b is :" << a-b << endl; //11-5 cout << "a * b is :" << a*b << endl; //11*5 cout << "a / b is :" << a/b << endl; //11/5 cout << "a % b is :" << a%b << endl; //11%5 cout << "a++ is :" << a++ << endl; //11++ cout << "a-- is :" << a-- << endl; //12-- return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередині якої слід додати логіку програми. { позначає початок тіла функції main().
- Оголошення цілочисельної змінної a та ініціалізація її 11.
- Оголошення цілочисельної змінної b та ініціалізація її 5.
- Оголошення цілочисельної змінної c.
- Виведення значення операції a+b разом з іншим текстом на консоль.
- Виведення значення операції ab разом з іншим текстом на консоль.
- Виведення значення операції a*b разом з іншим текстом на консоль.
- Виведення значення операції a/b разом з іншим текстом на консоль.
- Виведення значення операції a%b разом з іншим текстом на консоль.
- Виведення значення операції a++ разом з іншим текстом на консоль.
- Виведення значення операції a– разом з іншим текстом на консоль.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Реляційний Operaторс
Ці типи операторів виконують порівняння операндів. Наприклад, вам може знадобитися знати, який операнд більший за інший або менший за інший. Вони включають:
| Operaтор | Опис |
|---|---|
| == дорівнює оператору | Перевіряє рівність двох значень операнда. |
| != не дорівнює оператору | Перевіряє нерівність двох значень операндів. |
| > оператор більше ніж | Перевіряє, чи значення лівого операнда більше за значення правого операнда. |
| оператор < менше ніж | Перевіряє, чи значення лівого операнда менше за значення правого операнда. |
| >= більше або дорівнює оператору | Перевіряє, чи значення лівого операнда більше або дорівнює значенню правого операнда. |
| <= оператор менше або дорівнює | Перевіряє, чи значення лівого операнда менше або дорівнює значенню правого операнда. |
Наприклад:
#include <iostream> using namespace std; int main() { int a = 11; int b = 5; cout << "a=11, b=5" << endl; if (a == b) { cout << "a == b is true" << endl; } else { cout << " a == b is false" << endl; } if (a < b) { cout << "a < b is true" << endl; } else { cout << "a < b is false" << endl; } if (a > b) { cout << "a > b is true" << endl; } else { cout << "a > b is false" << endl; } return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми.
- Оголошення цілочисельної змінної a та ініціалізація її 11.
- Оголошення цілочисельної змінної b та ініціалізація її 5.
- Друк деякого тексту на консолі із зазначенням значень змінних a і b.
- Перевірка того, чи a дорівнює b, за допомогою оператора прийняття рішення if.
- Текст, який потрібно вивести на консоль, якщо операція a==b є істинною.
- Частина else вищезгаданого оператора if, яка вказує, що робити, якщо a==b є хибним.
- Текст, який потрібно вивести на консоль, якщо операція a==b є хибною.
- Перевірка того, чи a менше за b, за допомогою оператора if.
- Текст, який потрібно вивести на консоль, якщо операція a
- Частина else для випадку, коли a
- Текст, який потрібно вивести на консоль, якщо операція a
- Перевірка, чи a більше за b, за допомогою оператора if.
- Текст, який потрібно вивести на консоль, якщо операція a>b є істинною.
- Частина else для випадку, коли a>b є хибним.
- Текст, який потрібно вивести на консоль, якщо операція a>b є хибною.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
логічний Operaторс
Команда логічні оператори поєднують два або більше обмежень/умов. Логічні оператори також доповнюють оцінку розглянутої вихідної умови. Вони включають:
| Operaтор | Опис |
|---|---|
| && логічний оператор І | Умова істинна, якщо обидва операнди не дорівнюють нулю. |
| || логічний оператор АБО | Умова виконується, якщо один із операндів відмінний від нуля. |
| логічний оператор НЕ ! | Він змінює логічний стан операнда на протилежний. Якщо операнд має значення true (істина), оператор ! перетворює його на false (хибність). |
Наприклад:
#include <iostream> using namespace std; int main() { int a = 5, b = 2, c = 6, d = 4; if (a == b && c > d) cout << "a equals to b AND c is greater than d\n"; else cout << "AND operation returned false\n"; if (a == b || c > d) cout << "a equals to b OR c is greater than d\n"; else cout << "Neither a is equal to b nor c is greater than d\n"; if (!b) cout << "b is zero\n"; else cout << "b is not zero"; return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми.
- { позначає початок тіла функції main().
- Оголошення 4 цілочисельних змінних a, b, c та d та присвоєння їм різних значень.
- Використання оператора && (І) всередині оператора if. Він об'єднує дві умови. Перша умова хибна, а друга — істинна, тому false&&true є хибним; результатом if є хибним.
- Текст, який потрібно вивести на консоль, якщо наведений вище оператор if є істинним. Це не буде виконано.
- Частина, яка має бути виконана, якщо вищевказаний оператор if є хибним.
- Текст для друку на консолі, якщо оператор if невірний. Це буде виконано.
- Використання оператора || (АБО) в операторі if. Перша умова хибна, а друга — істинна, тому false||true буде істинним; результат оператора if буде істинним.
- Текст, який потрібно вивести на консоль, якщо наведений вище оператор if є істинним. Це буде виконано.
- Частина, яка має бути виконана, якщо вищевказаний оператор if є хибним.
- Текст для друку на консолі, якщо оператор if невірний. Це не буде виконано.
- Перевірка, чи значення змінної b дорівнює 0.
- Текст, який потрібно вивести на консоль, якщо наведений вище оператор if є істинним. Це не буде виконано.
- Частина, яка має бути виконана, якщо вищевказаний оператор if є хибним.
- Текст для друку на консолі, якщо оператор if невірний. Це буде виконано.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Побітовий Operaторс
Побітові оператори виконувати операції на бітовому рівні з операндами. Спочатку операнди перетворюються на бітовий рівень, потім виконуються операції. Коли арифметичні операції, такі як додавання та відніманняtracЯкщо дії виконуються на бітовому рівні, результати можна досягти швидше. Вони включають:
| Operaтор | Опис |
|---|---|
| & (побітове І) | Приймає 2 числа (операнди), а потім виконує операцію «І» над кожним бітом цих двох чисел. Якщо обидва дорівнюють 1, операція «І» повертає 1, інакше — 0. |
| | (порозрядне АБО) | Приймає 2 числа (операнди), а потім виконує операцію АБО над кожним бітом цих двох чисел. Повертає 1, якщо один з бітів дорівнює 1. |
| ^ (побітове виключаюче АБО) | Приймає 2 числа (операнди), а потім виконує операцію XOR над кожним бітом цих 2 чисел. Повертає 1, якщо обидва біти різні. |
| << (зрушення вліво) | Бере два числа, а потім зсуває ліворуч біти першого операнда. Другий операнд визначає загальну кількість позицій для зсуву. |
| >> (праворуч) | Бере два числа, а потім зсуває праворуч біти першого операнда. Другий операнд визначає кількість позицій для зсуву. |
| ~ (побітове НЕ) | Бере число, а потім інвертує всі його біти. |
#include <iostream> using namespace std; int main() { unsigned int p = 60; // 60 = 0011 1100 unsigned int q = 13; // 13 = 0000 1101 int z = 0; z = p & q; cout << "p&q is : " << z << endl; // 12 = 0000 1100 z = p | q; cout << "p|q is : " << z << endl; // 61 = 0011 1101 z = p ^ q; cout << "p^q is : " << z << endl; // 49 = 0011 0001 z = ~p; cout << "~p is : " << z << endl; // -61 = 1100 0011 z = p << 2; cout << "p<<2 is: " << z << endl; // 240 = 1111 0000 z = p >> 2; cout << "p>>2 is : " << z << endl; // 15 = 0000 1111 return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми.
- Оголошення беззнакової цілочисельної змінної p та присвоєння їй значення 60, що у двійковій системі числення дорівнює 0011 1100.
- Оголошення беззнакової цілочисельної змінної q та присвоєння їй значення 13, що у двійковій системі числення дорівнює 0000 1101.
- Оголошення цілочисельної змінної z та ініціалізація її значенням 0.
- Виконання побітової операції & (І) над змінними p і q і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Виконання порозрядного | (АБО) операція над змінними p і q і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Виконання побітової операції ^ (XOR) над змінними p і q і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Виконання побітової операції ~ (НЕ) над змінною p та збереження результату у змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Виконання операції зсуву вліво для змінної p і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Виконання операції зсуву вправо над змінною p і збереження результату в змінній z.
- Друк результату описаної вище операції на консолі разом з іншим текстом.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Призначення Operaторс
Оператори присвоєння присвоювати значення змінним. Операнд/змінна додається до лівого боку оператора, а значення – до правого. Змінна та значення повинні належати до одного типу даних, інакше C++ компілятор викличе помилку.
Наприклад:
x = 5;
У наведеному вище прикладі x – це змінна/операнд, = – оператор присвоєння, а 5 – значення. Ось популярні оператори присвоєння в C++:
| Operaтор | Опис |
|---|---|
| = (простий оператор присвоювання) | Присвоює значення праворуч змінній ліворуч. |
| += (оператор присвоєння "І") | Додає значення правого операнда до лівого операнда, а потім присвоює результат змінній ліворуч. |
| -= (Підрядtracоператор присвоєння ТА t) | нижчеtracts отримує значення правого операнда з лівого операнда, а потім присвоює результат змінній ліворуч. |
| *= (оператор присвоєння множення І) | Множить значення лівого операнда на правий, а потім присвоює результат змінній ліворуч. |
| /= (оператор ділення ТА присвоювання) | Ділить значення лівого операнда на правий, а потім присвоює результат змінній ліворуч. |
Наприклад:
#include <iostream> using namespace std; int main() { int x = 5; cout << "Initial value of x is " << x << "\n"; x += 5; cout << "x += 5 gives :" << x << "\n"; x -= 5; cout << "x -= 5 gives : " << x << "\n"; x *= 5; cout << "x *= 5 gives :" << x << "\n"; x /= 5; cout << "x /= 5 gives : " << x << "\n"; return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми.
- { позначає початок тіла функції main().
- Оголошення цілочисельної змінної x і присвоєння їй значення 5.
- Виведення значення змінної x разом з іншим текстом у консоль. \n — це символ нового рядка.
- Додавання 5 до значення змінної x та присвоєння результату змінній x.
- Виведення значення змінної x на консоль разом з іншим текстом.
- нижчеtracобчислення 5 зі значення x та присвоєння результату змінній x.
- Виведення значення змінної x на консоль разом з іншим текстом.
- Множення значення змінної x на 5 та присвоєння результату змінній x.
- Виведення значення змінної x на консоль разом з іншим текстом.
- Ділення значення змінної x на 5 та присвоєння результату змінній x.
- Виведення значення змінної x на консоль разом з іншим текстом.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Інше Operaторс
Інше Operaторс включно з оператором sizeof, комою Operaтор, умовний Operaтор, і OperaПріоритет операторів. Обговоримо інші оператори, що підтримуються C++:
оператор sizeof
Цей оператор визначає розмір змінної. Використовуйте оператор sizeof для визначення розміру типу даних.
Наприклад:
#include <iostream> using namespace std; int main() { cout<<"Size of int : "<< sizeof(int) << "\n"; cout<<"Size of char : " << sizeof(char) << "\n"; cout<<"Size of float : " << sizeof(float) << "\n"; cout<<"Size of double : " << sizeof(double) << "\n"; return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми.
- Визначення розміру цілочисельного типу даних за допомогою оператора sizeof та виведення його разом з іншим текстом у консоль.
- Визначення розміру символьного типу даних за допомогою оператора sizeof та виведення його разом з іншим текстом на консоль.
- Визначення розміру типу даних float за допомогою оператора sizeof та виведення його разом з іншим текстом на консоль.
- Визначення розміру типу даних double за допомогою оператора sizeof та виведення його разом з іншим текстом у консоль.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Кома Operaтор
Команда оператор кома (,) запускає виконання послідовності операцій. Він виражає перший операнд і відкидає результат. Далі він обчислює другий операнд і повертає значення та тип.
#include <iostream> using namespace std; int main() { int x, y; y = 100; x = (y++, y + 10, 99 + y); cout << x; return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми.
- Оголошення двох цілих змінних x і y.
- Присвоєння змінній ya значення 100.
- Використовуючи оператор коми. Починається з y, що становить 100, потім збільшується до 101 (y++). Далі y додається до 10. Нарешті, y, все ще на 101, додається до 99, даючи 200. x тепер дорівнює 200.
- Виведення значення змінної x на консоль.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
умовний Operaтор
Цей оператор оцінює умову та діє на основі результату оцінювання.
Синтаксис:
Condition ? Expression2 : Expression3;
Параметри:
- Умова – це умова, яку потрібно оцінити.
- Вираз2 – це вираз, який буде виконано, якщо умова істинна.
- Вираз3 – це вираз, який буде виконано, якщо умова хибна.
Наприклад:
#include <iostream> using namespace std; int main() { int a = 1, b; b = (a < 10) ? 2 : 5; cout << "value of b: " << b << endl; return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередину якої має бути додана логіка програми.
- Оголошення двох цілі змінні a і b. Змінній a присвоєно значення 1.
- Присвоєння значення змінній b. Якщо змінній a менше 10, b буде присвоєно значення 2, інакше b буде присвоєно значення 5.
- Виведення значення змінної b на консоль разом з іншим текстом.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Operators Пріоритет
Одна операція може мати більше одного оператора. У цьому випадку пріоритет оператора визначає той, який оцінюється першим.
У наведеному нижче списку показано пріоритет операторів in C++, зі зменшенням пріоритету зліва направо:
(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=














