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тори
Това са типовете оператори, използвани за извършване на математически/аритметични операции. Те включват:
| OperaTor | Descriptйон |
|---|---|
| + оператор за добавяне | Добавя два операнда. |
| - Undertracоператор на ция | Подtracts 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тори
Тези видове оператори извършват сравнения на операнди. Например, може да се наложи да знаете кой операнд е по-голям от другия или по-малък от другия. Те включват:
| OperaTor | Descriptйон |
|---|---|
| == равно на оператора | Проверява равенството на стойностите на два операнда. |
| != не е равно на оператор | Проверява неравенството на две стойности на операнди. |
| > оператор по-голям от | Проверява дали стойността на левия операнд е по-голяма от стойността на десния операнд. |
| < оператор „по-малко от“ | Проверява дали стойността на левия операнд е по-малка от стойността на десния операнд. |
| >= по-голямо или равно на оператор | Проверява дали стойността на левия операнд е по-голяма или равна на стойността на десния операнд. |
| <= оператор по-малко или равно на | Проверява дали стойността на левия операнд е по-малка или равна на стойността на десния операнд. |
Например:
#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тори
- логически оператори комбинират две или повече ограничения/условия. Логическите оператори също допълват оценката на разглежданото първоначално условие. Те включват:
| OperaTor | Descriptйон |
|---|---|
| && логически оператор И | Условието е вярно, ако и двата операнда са различни от нула. |
| || логически оператор ИЛИ | Условието е вярно, ако един от операндите е различен от нула. |
| логически оператор НЕ! | Обръща логическото състояние на операнда. Ако операндът е истина (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Ако се извършват действия на битово ниво, резултатите могат да бъдат постигнати по-бързо. Те включват:
| OperaTor | Descriptйон |
|---|---|
| & (побитово И) | Взема 2 числа (операнди), след което извършва операция „И“ (AND) върху всеки бит от двете числа. Ако и двете са 1, „И“ връща 1, в противен случай 0. |
| | (побитово ИЛИ) | Взема 2 числа (операнди), след което извършва операция ИЛИ върху всеки бит от двете числа. Връща 1, ако един от битовете е 1. |
| ^ (побитово XOR) | Взема 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.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на побитово | (OR) операция върху променливи p и q и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на побитова операция ^ (XOR) върху променливи p и q и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на побитовата ~ (NOT) операция върху променлива p и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на ляво изместване на променлива p и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на операция за смяна надясно на променлива p и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
Задание Operaтори
Оператори за присвояване присвояване на стойности на променливи. Операндът/променливата се добавя от лявата страна на оператора, докато стойността се добавя от дясната страна. Променливата и стойността трябва да принадлежат към един и същи тип данни, в противен случай C++ компилаторът ще генерира грешка.
Например:
x = 5;
В горния пример x е променливата/операндът, = е операторът за присвояване, а 5 е стойността. Ето популярните оператори за присвояване в C++:
| OperaTor | Descriptйон |
|---|---|
| = (прост оператор за присвояване) | Присвоява стойността отдясно на променливата отляво. |
| += (оператор за добавяне И) | Добавя стойността на десния операнд към левия операнд, след което присвоява резултата на променливата отляво. |
| -= (Под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, запетая Operator, Условно 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().
запетая OperaTor
- оператор запетая (,) задейства изпълнението на поредица от операции. Изразява първия операнд и отхвърля резултата. След това оценява втория операнд и връща стойността и типа.
#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().
условен OperaTor
Този оператор оценява условие и действа въз основа на резултата от оценката.
Синтаксис:
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 е присвоена стойност 1.
- Присвояване на стойност на променлива b. Ако променлива a е по-малка от 10, на b ще бъде присвоена стойност 2, в противен случай на b ще бъде присвоена стойност 5.
- Изписване на стойността на променлива b на конзолата, наред с друг текст.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
OperaTors Предимство
Една операция може да има повече от един оператор. В този случай приоритетът на оператора определя първо оценения.
Следващият списък показва приоритета на операторите в C++, с намаляващ приоритет отляво надясно:
(), [], *, /, %, +/-, <<, >>, ==, !=, ^, |, &&, ||, ?:, =, +=, -=, *=, /=













