c operators types
Повне вивчення операторів на C ++ із прикладами:
веб-сайт для перегляду аніме безкоштовно
У цьому Інтенсивна навчальна серія C ++, ми дізналися про різні концепції в C ++, такі як змінні, класи зберігання, кваліфікатори типу тощо в наших попередніх навчальних посібниках. Ми також дізналися, як ми можемо модифікувати ці змінні.
Щоб зробити ці модифікації, нам потрібно виконати операції з цими змінними та константами, і для виконання цих операцій ми використовуємо оператори.
Оператори - це символи, які діють на змінні або інші сутності, які називаються операндами, і виконують математичні або логічні операції для модифікації своїх значень та отримання результатів відповідно.
Що ви дізнаєтесь:
Оператори в C ++
Оператори складають основну основу будь-якої мови програмування. Без операторів ми не можемо змінювати або маніпулювати сутностями мов програмування, а отже, не можемо отримати бажаних результатів. C ++ дуже багатий на вбудовані оператори, про що ми детально поговоримо в цьому посібнику.
У C ++ більшість операторів є двійковими операторами, тобто цим операторам для виконання операції потрібні два операнди. Мало таких операторів, як оператор ++ (збільшення), є унарним оператором, що означає, що вони працюють лише з одним операндом.
У C ++ також є трикомпонентний оператор, який називається умовний оператор, який приймає три операнди. Про це ми докладно дізнаємось у наступній частині підручника.
Типи операторів на C ++
Оператори в C ++ класифікуються, як показано нижче:
Давайте детально вивчимо кожен тип оператора C ++ !!
Арифметичні оператори
Арифметичні оператори використовуються для виконання основних математичних операцій над операндами.
C ++ підтримує такі арифметичні операції:
Оператор | Двійкові / одинарні | Опис |
---|---|---|
- | Одинарний | Оператор зменшення - зменшує значення операнда на 1 |
+ | Двійкові | Додавання двох операндів |
- | Двійкові | Віднімання двох операндів |
* | Двійкові | Множення двох операндів |
/ | Двійкові | Ділення на два операнди |
% | Двійкові | Оператор модуля - результат - залишок від ділення |
++ | Одинарний | Інкрементний оператор - збільшує значення операнда на 1 |
Наведений нижче приклад демонструє перші п’ять арифметичних операторів в C ++
#include #include using namespace std; int main() { int op1=3,op2=4; float op3=10.1,op4=5.4; cout<<'Operands are op1 = '< Ми можемо це краще зрозуміти, використовуючи наступний приклад. #include #include using namespace std; int main() { int x=4,y; y = ++x; cout<<'PreIncrement:Value of x = '<Логічні оператори Логічні оператори використовуються для оцінки комбінації умов / обмежень для отримання результуючого значення. Результатом обчислення логічного виразу є логічне значення, яке є істинним, або хибним.
С ++ підтримує такі логічні оператори:
Оператор Опис 7 L-> R <<
>> Побітове зсув вліво
Побітове зсув праворуч && Логічне І: повертає true, якщо обидві умови істинні, інакше повертає false. || Логічне АБО: повертає true, якщо одна з умов є істинною. Повертає false, коли обидві умови хибні. ! Логічне НЕ: заперечує стан.
C ++ використовує метод короткого замикання для оцінки логічних виразів. У цьому C ++ повинен обчислити лише перший вираз / операнд логічного виразу, щоб надати результат. Наприклад, для логічного оператора AND (&&) C ++ обчислює лише перший вираз. Якщо воно хибне, результат буде хибним, навіть якщо друга умова відповідає дійсності.
Так само для логічного АБО (||) він обчислює лише перший вираз. Якщо перший вираз є істинним, то результат буде істинним, тому не потрібно оцінювати другий вираз.
Нижче наведено приклад, який показує використання логічних операторів.
#include #include using namespace std; int main() int a=10, b=8,c=12,d=14; if(!(a==0)) cout<<'a is not zero'< Вихід:
a не дорівнює нулю
Логічне І - це правда
Логічне АБО - це істина
У вищезазначеній програмі ми використали всі три логічні оператори для оцінки виразів та друку результатів.
Реляційні оператори
Для порівняння двох операндів використовуються реляційні або оператори порівняння. Результат оцінки є істинним або хибним.
C ++ підтримує такі реляційні оператори:
Оператор Опис ! ПОМИЛКА! несподіваний оператор '=' Оцінює, чи рівні два операнди. Повертає true, якщо рівний else повертає false. ! = (не дорівнює) Доповнює оператор 'дорівнює'. Повертає true, якщо операнди не рівні. Інакше помилково. <(less than) Повертає true, якщо перший операнд менше другого. Інакше помилково. <=(less than equal to) Повертає true, якщо перший операнд менше або дорівнює другому операнду. Інакше помилково. > (більше ніж) Повертає true, якщо перший операнд більший за другий. Інакше помилково. > = (більше ніж дорівнює) Повертає true, якщо перший операнд більше, ніж дорівнює другому. Інакше помилково.
Дивіться нижче приклад програми, щоб зрозуміти реляційні оператори.
#include #include using namespace std; int main() { int a=10, b=8,c=12,d=14; if(a==b) cout<<'a is equal to b'< Вихід:
a не дорівнює b
c не дорівнює d
(a + b) менше / дорівнює (c + d)
(a-b) більше / дорівнює (d-c)
У наведеній вище програмі ми бачимо використання реляційних операторів та спосіб оцінки наданих виразів.
Зверніть увагу, що ми можемо надати не лише значення, але й змінні та вирази в умовних операторах.
Побітові оператори
Побітові оператори в C ++ оперують бітами наданих операндів. Побітові оператори застосовуються лише до цілих типів, таких як ціле число, символ тощо, а не до типів даних, таких як float, double тощо.
Нижче наведені побітові оператори, підтримувані C ++:
Оператори Опис & (Двійковий І) Виконує операцію І над бітами операнда 1 і операнда 2. | (Двійковий АБО) Виконує операцію АБО над бітами операнда 1 та операнда 2. ^ (Двійковий XOR) Виконує операцію XOR над бітами операнда 1 і операнда 2. ~ (Двійковий додаток) Бере один операнд і інвертує його біти. <<( Binary left shift operator) Зміщує біти першого операнда вліво до кількості бітів, визначених другим операндом. >> (Двійковий оператор зсуву праворуч) Зміщує біти першого операнда вправо в кількість місць, визначених другим операндом.
Ці побітові оператори оперують операндами побітово. Таблиці істинності для операцій AND, OR та XOR наведені нижче.
Розглянемо a і b як два біти, над якими слід виконувати операції AND, OR та XOR.
Таблиці правди для тих самих наведені нижче:
до b a & b a | b а ^ б 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0
Давайте візьмемо приклад для розуміння побітових операцій.
Нехай a = 8 і b = 4
Бінарне представлення a та b має вигляд:
a = 8 1000
a = 4 0100
a & b 0000 = 0
a | b 1100 = 12
a ^ b 1100 = 12
У наведеному вище прикладі ми бачимо, що побітове І з 8 і 4 дорівнює 0. Побітове АБО 8 і 4 дорівнює 12, а побітове XOR 8 і 4 також 12.
Це спосіб, яким побітові операції виконують побітові оператори.
Приклад демонстрації побітових операторів.
#include #include using namespace std; int main() int a=8,b=4,c; c = a&b; cout<<'Result of & : '< Вихід:
Результат &: 0
Результат | : 12
Результат ^: 12
Результат<< by 2 bits: 32
Результат >> на 2 біти: 1
Результат ~: -4
У наведеній вище програмі ми продемонстрували використання побітових операторів, а також надрукували результати кожної операції.
Оператори присвоєння
Оператор присвоєння “=” використовується для присвоєння значення змінній. LHS оператора присвоєння є змінною, а RHS - значенням, яке слід присвоїти змінній. Значення праворуч має бути того самого типу, що і значення змінної зліва.
Зверніть увагу на різницю між операторами „=” та „==”. Перший є оператором присвоєння, а пізніше - оператором рівності.
Операція присвоєння відбувається справа наліво. Окрім оператора присвоєння ‘=’, існують інші варіанти оператора присвоєння, які відомі як ‘складені оператори присвоєння’. Ці оператори виконують операцію на додаток до призначення.
У таблиці нижче наведено опис цих операторів присвоєння.
Оператор Опис = Призначає значення операнда RHS операнду LHS + = Додає операнд RHS до операнда LHS і призначає результат у операнді LHS. - = Віднімає операнд RHS до операнда LHS і призначає результат операнду LHS * = множить операнд RHS до операнда LHS і призначає результат операнду LHS / = ділить операнд RHS на операнд LHS і призначає результат операнду LHS
Як показано в наведеній вище таблиці, якщо x і y є операндами, x + = y еквівалентно x = x + y.
Так само,
спрацьовування портів проти переадресації портів для ігор
x - = y еквівалентно x = x-y.
x * = y еквівалентно x = x * y.
x / = y еквівалентно x = x / y.
Наведений нижче Приклад програмування демонструє ці оператори присвоєння.
#include #include using namespace std; int main() { int x,y; cout<>y; x = y; cout<<'
Value of x = '< Вихід:
Введіть вхідну змінну y: 4
Значення x = 4
a + = b: 8
c - = b: 3
a * = b: 40
b / = c: 1

У наведеному вище прикладі ми продемонстрували присвоєння, а також складені оператори присвоєння.
Примітка: Ми також можемо поєднувати інші двійкові оператори, такі як%,<>, &, |, ^ тощо у складені оператори присвоєння на додаток до вже продемонстрованих.
Інші оператори
Наразі ми дослідили всі основні оператори в C ++. Є ще кілька додаткових операторів C ++, які потребують нашої уваги.
До таких операторів належать:
(i) розмір оператора
sizeof - це одинарний оператор, який широко використовується в C та C ++. Sizeof повертає розмір свого операнда. Зворотне значення - це, як правило, неподписаний інтегральний тип, який позначається як 'size_t'.
Оператор Sizeof багато використовує в мовах C та C ++. З його допомогою можна дізнатись розмір змінних, масивів чи виразів і навіть розподілити блоки пам'яті.
(ii) Умовний потрійний оператор
Умовний оператор у C ++ може бути використаний як заміна оператора if-else.
Загальним синтаксисом умовного оператора є:
Хвороба? вираз1: вираз2;
Якщо умова відповідає істині, буде вираховано вираз 1. Якщо умова хибна, тоді буде вираховано вираження2.
Зверніть увагу, що вираз1 та вираз2 повинні мати однакові типи даних, щоб уникнути потенційних помилок.
Запропоноване прочитання => Трійковий оператор в C #
(iii) Оператор комі
Оператор-кома, який представлений як маркер «,», може використовуватися як оператор, так і як роздільник.
В якості оператора кома використовується, коли існує більше одного виразу, що підлягає оцінці. Лише крайній правий вираз присвоюється LHS.
Наприклад,розглянемо наступний вираз.
x = (y = 4, y + 1);
У цьому виразі ми маємо два вирази праворуч, відокремлені комою. Тут кома діє як оператор. Спочатку буде обчислюватися вираз y = 4. Тоді наступний вираз y + 1 буде обчислюватися за допомогою результату першого виразу, тобто y = 4. Таким чином, значення y + 1 буде 5, і це значення буде присвоєно x.
Як роздільник кома може використовуватися де завгодно для розділення визначень, списку параметрів тощо.
(iv) Оператор доступу членів
список компаній, що використовують хмарні обчислення
Існує два оператори, які використовуються для доступу до окремих членів класів, структур або об’єднань у C ++. Це оператор крапки (.) Та стрілка (->). Ми детально вивчимо ці оператори, коли вивчимо об’єктно-орієнтоване програмування на C ++.
Наведений нижче приклад демонструє використання sizeof, Comma та умовного оператора.
#include #include using namespace std; int main() { int x,y; x = (y=3,y+4); cout<<'Value of x = '< Вихід:
Значення x = 7
Змінна x більше 5
розмір (x): 4 розмір (y): 4
Знімок екрана для цього наведено нижче.

Як показано у наведеній вище програмі, спочатку ми маємо дві змінні, оголошені і розділені комою. (кома як роздільник). Далі у нас є оператор-кома з двома виразами. Як ми бачимо з результату, значення крайнього правого виразу присвоюється змінній x. Далі ми демонструємо умовний оператор, щоб оцінити, якщо x менше 5.
Нарешті, ми демонструємо використання оператора sizeof. Тут ми використовуємо оператор sizeof, щоб отримати розмір змінних x і y. Оскільки обидві є цілими змінними, повертається розмір - 4 байти.
(v) Прецедентність та асоціативність оператора
Ми вже бачили майже всі оператори C ++, і ми знаємо, що їх можна використовувати у виразах для здійснення конкретних операцій. Але вирази, які ми бачили на прикладах, прості та зрозумілі. Однак, залежно від наших вимог, вирази, як правило, стають дедалі складнішими.
Такі складні вирази матимуть більше одного оператора та багато операндів. У такій ситуації нам потрібно оцінити, якого оператора слід оцінити першим.
Наприклад, розглянемо наступний вираз.
х = 4 + 5/3;
Тут ми маємо оператори + та /, і нам потрібно вирішити, який вираз буде оцінено першим. У математичному плані ми знаємо, що поділ буде здійснено перед додаванням. Таким чином вираз стане x = 4 + (5/3) = 5.
Але коли компілятор стикається з такою ситуацією, нам також потрібно мати подібний механізм, щоб визначати порядок операцій, щоб він міг правильно оцінити вираз.
Цей порядок, в якому обчислюються оператори у складеному виразі, називається “Прецедент” оператора. С ++ визначив пріоритет для всіх операторів, і оператори з вищим пріоритетом оцінюються спочатку.
Що відбувається, коли ми маємо два оператори поруч у виразі з однаковим пріоритетом? Ось тут і з’являється асоціативність оператора.
Асоціативність говорить компілятору, чи слід обчислювати вираз у послідовності зліва направо або послідовності справа наліво. Таким чином, використовуючи пріоритет та асоціативність оператора, ми можемо ефективно оцінити вираз і отримати бажаний результат.
С ++ надає таблицю, що складається з пріоритету та асоціативності різних операторів, які він використовує.
Ця таблиця наведена нижче.
Перевага / Асоціативність Оператор Опис 1 Немає ::
:: Оператор роздільної здатності
(одинарний)
(двійковий) 2 L-> R ()
()
()
{}
тип ()
введіть {}
()
.
->
++
––
типовий
const_cast
динамічний_запис
reinterpret_cast
static_cast Круглі скобки
Виклик функції
Ініціалізація
Рівномірна ініціалізація (C ++ 11)
Функціональний акторський склад
Функціональний склад (C ++ 11)
Індекс масиву
Доступ учасника від об’єкта
Доступ учасника від об'єкта ptr
Постінкремент
Після декременту
Інформація про тип виконання
Відкинути конст
Активність, перевірена за часом виконання
Перекласти один тип на інший Актори, перевірені за типом компіляції 3 R-> L +
-
++
––
!
~
(тип)
розмір
&
*
новий
новий ()
видалити
видалити () Одинарний більше
Одинарний мінус
Попереднє збільшення
Попереднє зменшення
Логічне НЕ
Побітове НЕ
Акторський склад у стилі С
Розмір у байтах
Адреса
Розшарування
Динамічне виділення пам'яті
Динамічне розподіл масиву
Динамічне видалення пам'яті
Динамічне видалення масиву 4 L-> R -> *
. * Вибір покажчика члена
Вибір об'єкта-члена 5 L-> R *
/
% Множення
Відділ
Модуль 6 L-> R +
- Додавання
Віднімання 8 L-> R <
<=
>
> = Порівняння менше ніж
Порівняння менше або дорівнює
Порівняння більше ніж
Порівняння більше або дорівнює 9 L-> R ! ПОМИЛКА! незаконний символ '!' Рівність
Нерівність 10 L-> R & Побітове І 11 L-> R ^ Побітовий XOR 12 L-> R | Побітове АБО 13 L-> R && Логічне І 14 L-> R || Логічне АБО 15 R-> L ?:
=
* =
/ =
% =
+ =
- =
<<=
>> =
& =
| =
^ = Умовні (див. Примітку нижче)
Призначення
Призначення множення
Призначення підрозділу
Призначення модуля
Призначення додавання
Призначення віднімання
Побітове зсув призначення вліво
Побітове зсув праворуч
Побітове І присвоєння
Порозрядне АБО призначення
Побітове призначення XOR 16 R-> L кинути Кинь вираз 17 L-> R , Кома оператор
Примітки:
- Рівень переваги 1 - найвищий рівень переваги, а рівень 17 - найнижчий. Оператори з вищим рівнем пріоритету оцінюються першими.
- L-> R означає асоціативність зліва направо.
- R-> L означає асоціативність справа наліво.
Висновок
Це все про оператори в C ++.
Ми обговорили майже всіх операторів. Деякі конкретні оператори, які присутні у наведеній вище таблиці пріоритетів, які ми не обговорювали, будуть обговорюватися відповідно до тем, які ми розглядаємо в наших майбутніх підручниках.
=> Дивіться тут, щоб ознайомитися з повним списком підручників з C ++
Рекомендована література
- Приклади арифметичних та булевих операторів сценарію оболонки Unix
- Оператори Python
- Нові / Видалити оператори в C ++ з прикладами
- Типи даних Python
- Умовні твердження Unix: якщо тоді інше та реляційні оператори
- Підручник із прикладами Python DateTime
- Підручник з ін’єкцій HTML: типи та профілактика на прикладах
- Вирізати команду в Unix з прикладами