Operaтори в C++Типи з прикладом

⚡ Розумний підсумок

Operaтори в C++ – це символи, які виконують операції над операндами, починаючи від арифметичних дій та порівняння і закінчуючи логічними, побітовими діями та діями присвоєння. У цьому ресурсі пояснюється кожна категорія операторів із прикладами програм, виводом та правилами пріоритету, які визначають порядок обчислення.

  • Арифметика Operaторс: Виконуйте математичні операції, такі як додавання, відніманняtracування, множення, ділення, виконання дій по модулю, збільшення та зменшення числових операндів.
  • 🇧🇷 Реляційний Operaторс: Порівняти два операнди, використовуючи перевірки на рівність та порядок, повертаючи результат «true» або «false».
  • 🔗 логічний Operaторс: Поєднуйте або перевертайте умови за допомогою операторів І, АБО та НЕ, щоб контролювати рішення програми.
  • 🔢 Побітовий Operaторс: Operaбезпосередньо на окремих бітах за допомогою операцій І, АБО, Виключаюче АБО, НЕ та зсуву для швидшої роботи низького рівня.
  • ???? Завдання та інше Operaторс: Призначте значення, а також sizeof, кому та умовний оператор, кожне з яких продемонстровано з прикладом виведення.
  • 📊 OperaПріоритет тор: Правила пріоритету визначають, який оператор у складному виразі обчислюється першим.

Operaтори в C++

Які Operaторс?

Оператор — це символ, що використовується для виконання операцій над операндами. Оператор оперує над операндами, і ці операції можуть бути математичними або логічними. Існують різні типи операторів у C++ для виконання різних операцій.

Розглянемо наступну операцію:

a = x + y;

У наведеному вище операторі x і y є операндами, тоді як + є оператором додавання. Коли C++ компілятор зустрічає наведений вище оператор, він додасть x і y і збереже результат у змінній a.

Типи Operaтори в C++

Є в основному 6 різних типів операторів C++:

  1. Арифметика Operaторс
  2. Реляційний Operaторс
  3. логічний Operaторс
  4. Побітовий Operaторс
  5. Призначення Operaторс
  6. Інше 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;
}

вихід:

Арифметика Operaторс

Ось скріншот коду:

Арифметика Operaторс

Code Пояснення:

  1. Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
  2. Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
  3. Виклик функції main(), всередині якої слід додати логіку програми. { позначає початок тіла функції main().
  4. Оголошення цілочисельної змінної a та ініціалізація її 11.
  5. Оголошення цілочисельної змінної b та ініціалізація її 5.
  6. Оголошення цілочисельної змінної c.
  7. Виведення значення операції a+b разом з іншим текстом на консоль.
  8. Виведення значення операції ab разом з іншим текстом на консоль.
  9. Виведення значення операції a*b разом з іншим текстом на консоль.
  10. Виведення значення операції a/b разом з іншим текстом на консоль.
  11. Виведення значення операції a%b разом з іншим текстом на консоль.
  12. Виведення значення операції a++ разом з іншим текстом на консоль.
  13. Виведення значення операції a– разом з іншим текстом на консоль.
  14. Функція main() має повертати значення, якщо програма працює нормально.
  15. Кінець тіла функції 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;
}

вихід:

Реляційний Operaторс

Ось скріншот коду:

Реляційний Operaторс

Code Пояснення:

  1. Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
  2. Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
  3. Виклик функції main(), всередину якої має бути додана логіка програми.
  4. Оголошення цілочисельної змінної a та ініціалізація її 11.
  5. Оголошення цілочисельної змінної b та ініціалізація її 5.
  6. Друк деякого тексту на консолі із зазначенням значень змінних a і b.
  7. Перевірка того, чи a дорівнює b, за допомогою оператора прийняття рішення if.
  8. Текст, який потрібно вивести на консоль, якщо операція a==b є істинною.
  9. Частина else вищезгаданого оператора if, яка вказує, що робити, якщо a==b є хибним.
  10. Текст, який потрібно вивести на консоль, якщо операція a==b є хибною.
  11. Перевірка того, чи a менше за b, за допомогою оператора if.
  12. Текст, який потрібно вивести на консоль, якщо операція a
  13. Частина else для випадку, коли a
  14. Текст, який потрібно вивести на консоль, якщо операція a
  15. Перевірка, чи a більше за b, за допомогою оператора if.
  16. Текст, який потрібно вивести на консоль, якщо операція a>b є істинною.
  17. Частина else для випадку, коли a>b є хибним.
  18. Текст, який потрібно вивести на консоль, якщо операція a>b є хибною.
  19. Функція main() має повертати значення, якщо програма працює нормально.
  20. Кінець тіла функції 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;
}

вихід:

логічний Operaторс

Ось скріншот коду:

логічний Operaторс

Code Пояснення:

  1. Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
  2. Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
  3. Виклик функції main(), всередину якої має бути додана логіка програми.
  4. { позначає початок тіла функції main().
  5. Оголошення 4 цілочисельних змінних a, b, c та d та присвоєння їм різних значень.
  6. Використання оператора && (І) всередині оператора if. Він об'єднує дві умови. Перша умова хибна, а друга — істинна, тому false&&true є хибним; результатом if є хибним.
  7. Текст, який потрібно вивести на консоль, якщо наведений вище оператор if є істинним. Це не буде виконано.
  8. Частина, яка має бути виконана, якщо вищевказаний оператор if є хибним.
  9. Текст для друку на консолі, якщо оператор if невірний. Це буде виконано.
  10. Використання оператора || (АБО) в операторі if. Перша умова хибна, а друга — істинна, тому false||true буде істинним; результат оператора if буде істинним.
  11. Текст, який потрібно вивести на консоль, якщо наведений вище оператор if є істинним. Це буде виконано.
  12. Частина, яка має бути виконана, якщо вищевказаний оператор if є хибним.
  13. Текст для друку на консолі, якщо оператор if невірний. Це не буде виконано.
  14. Перевірка, чи значення змінної b дорівнює 0.
  15. Текст, який потрібно вивести на консоль, якщо наведений вище оператор if є істинним. Це не буде виконано.
  16. Частина, яка має бути виконана, якщо вищевказаний оператор if є хибним.
  17. Текст для друку на консолі, якщо оператор if невірний. Це буде виконано.
  18. Функція main() має повертати значення, якщо програма працює нормально.
  19. Кінець тіла функції 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;
}

вихід:

Побітовий Operaторс

Ось скріншот коду:

Побітовий Operaторс

Code Пояснення:

  1. Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
  2. Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
  3. Виклик функції main(), всередину якої має бути додана логіка програми.
  4. Оголошення беззнакової цілочисельної змінної p та присвоєння їй значення 60, що у двійковій системі числення дорівнює 0011 1100.
  5. Оголошення беззнакової цілочисельної змінної q та присвоєння їй значення 13, що у двійковій системі числення дорівнює 0000 1101.
  6. Оголошення цілочисельної змінної z та ініціалізація її значенням 0.
  7. Виконання побітової операції & (І) над змінними p і q і збереження результату в змінній z.
  8. Друк результату описаної вище операції на консолі разом з іншим текстом.
  9. Виконання порозрядного | (АБО) операція над змінними p і q і збереження результату в змінній z.
  10. Друк результату описаної вище операції на консолі разом з іншим текстом.
  11. Виконання побітової операції ^ (XOR) над змінними p і q і збереження результату в змінній z.
  12. Друк результату описаної вище операції на консолі разом з іншим текстом.
  13. Виконання побітової операції ~ (НЕ) над змінною p та збереження результату у змінній z.
  14. Друк результату описаної вище операції на консолі разом з іншим текстом.
  15. Виконання операції зсуву вліво для змінної p і збереження результату в змінній z.
  16. Друк результату описаної вище операції на консолі разом з іншим текстом.
  17. Виконання операції зсуву вправо над змінною p і збереження результату в змінній z.
  18. Друк результату описаної вище операції на консолі разом з іншим текстом.
  19. Функція main() має повертати значення, якщо програма працює нормально.
  20. Кінець тіла функції 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;
}

вихід:

Призначення Operaторс

Ось скріншот коду:

Призначення Operaторс

Code Пояснення:

  1. Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
  2. Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
  3. Виклик функції main(), всередину якої має бути додана логіка програми.
  4. { позначає початок тіла функції main().
  5. Оголошення цілочисельної змінної x і присвоєння їй значення 5.
  6. Виведення значення змінної x разом з іншим текстом у консоль. \n — це символ нового рядка.
  7. Додавання 5 до значення змінної x та присвоєння результату змінній x.
  8. Виведення значення змінної x на консоль разом з іншим текстом.
  9. нижчеtracобчислення 5 зі значення x та присвоєння результату змінній x.
  10. Виведення значення змінної x на консоль разом з іншим текстом.
  11. Множення значення змінної x на 5 та присвоєння результату змінній x.
  12. Виведення значення змінної x на консоль разом з іншим текстом.
  13. Ділення значення змінної x на 5 та присвоєння результату змінній x.
  14. Виведення значення змінної x на консоль разом з іншим текстом.
  15. Функція main() має повертати значення, якщо програма працює нормально.
  16. Кінець тіла функції 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;
}

вихід:

оператор sizeof

Ось скріншот коду:

оператор sizeof

Code Пояснення:

  1. Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
  2. Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
  3. Виклик функції main(), всередину якої має бути додана логіка програми.
  4. Визначення розміру цілочисельного типу даних за допомогою оператора sizeof та виведення його разом з іншим текстом у консоль.
  5. Визначення розміру символьного типу даних за допомогою оператора sizeof та виведення його разом з іншим текстом на консоль.
  6. Визначення розміру типу даних float за допомогою оператора sizeof та виведення його разом з іншим текстом на консоль.
  7. Визначення розміру типу даних double за допомогою оператора sizeof та виведення його разом з іншим текстом у консоль.
  8. Функція main() має повертати значення, якщо програма працює нормально.
  9. Кінець тіла функції main().

Кома Operaтор

Команда оператор кома (,) запускає виконання послідовності операцій. Він виражає перший операнд і відкидає результат. Далі він обчислює другий операнд і повертає значення та тип.

#include <iostream>
using namespace std;
int main() {
	int x, y;
	y = 100;
	x = (y++, y + 10, 99 + y);
	cout << x;
	return 0;
}

вихід:

Кома Operaтор

Ось скріншот коду:

Кома Operaтор

Code Пояснення:

  1. Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
  2. Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
  3. Виклик функції main(), всередину якої має бути додана логіка програми.
  4. Оголошення двох цілих змінних x і y.
  5. Присвоєння змінній ya значення 100.
  6. Використовуючи оператор коми. Починається з y, що становить 100, потім збільшується до 101 (y++). Далі y додається до 10. Нарешті, y, все ще на 101, додається до 99, даючи 200. x тепер дорівнює 200.
  7. Виведення значення змінної x на консоль.
  8. Функція main() має повертати значення, якщо програма працює нормально.
  9. Кінець тіла функції 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;
}

вихід:

умовний Operaтор

Ось скріншот коду:

умовний Operaтор

Code Пояснення:

  1. Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
  2. Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
  3. Виклик функції main(), всередину якої має бути додана логіка програми.
  4. Оголошення двох цілі змінні a і b. Змінній a присвоєно значення 1.
  5. Присвоєння значення змінній b. Якщо змінній a менше 10, b буде присвоєно значення 2, інакше b буде присвоєно значення 5.
  6. Виведення значення змінної b на консоль разом з іншим текстом.
  7. Функція main() має повертати значення, якщо програма працює нормально.
  8. Кінець тіла функції main().

Operators Пріоритет

Одна операція може мати більше одного оператора. У цьому випадку пріоритет оператора визначає той, який оцінюється першим.

У наведеному нижче списку показано пріоритет операторів in C++, зі зменшенням пріоритету зліва направо:

(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=

Поширені запитання

Помічники кодування на основі штучного інтелекту можуть пропонувати правильний оператор, пояснювати пріоритет та позначати помилки, такі як плутанина = з ==. Вони пришвидшують навчання, але розуміння поведінки операторів самостійно залишається важливим для написання надійного коду.

Ні. Інструменти штучного інтелекту можуть форматувати та перевіряти вирази, але пріоритет безпосередньо впливає на вивід програми. Знання пріоритету допомагає читати код, налагоджувати логічні помилки та писати вирази, які поводяться саме так, як задумано.

OperaПеревантаження оператора Tor дозволяє перевизначити принцип роботи оператора для користувацьких типів, таких як класи. Наприклад, ви можете перевантажити оператор +, щоб додати два об'єкти, надаючи користувацьким типам інтуїтивно зрозумілу поведінку, подібну до вбудованої.

Префікс (++i) спочатку збільшує значення, а потім повертає його. Постфікс (i++) спочатку повертає поточне значення, а потім збільшує його. Різниця має значення, коли приріст використовується всередині більшого виразу.

Оператор = присвоює значення змінній, тоді як оператор == порівнює два значення на рівність і повертає true або false. Помилкове використання = всередині умови є поширеною помилкою.

Підсумуйте цей пост за допомогою: