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йон |
---|---|
+ оператор за добавяне | Добавя към операндите. |
– оператор за изваждане | Изважда 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
- Деклариране на целочислена променлива a и инициализиране на 11.
- Деклариране на целочислена променлива b и инициализиране на 5.
- Отпечатване на текст на конзолата, посочващ стойностите на променливите a и b.
- Извършване на аритметичната операция, a==b в оператор за вземане на решение if, за да разберете дали е вярно или невярно. { отбелязва началото на тялото на оператора if.
- Текст за отпечатване на конзолата, ако операцията a==b е вярна. Краят е a C++ ключова дума за крайния ред. Той натиска курсора, за да започне да печата на следващия ред. } маркира края на тялото на оператора if.
- Другата част от горния оператор if. Той посочва какво да се направи, ако операцията a==b е невярна.
- Текст за отпечатване на конзолата, ако операцията a==b е невярна. Краят е a C++ ключова дума за крайния ред. Той натиска курсора, за да започне да печата на следващия ред. } маркира края на тялото на оператора else.
- Извършване на аритметичната операция, а
- Текст за отпечатване на конзолата, ако операцията a C++ ключова дума за крайния ред. Той натиска курсора, за да започне да печата на следващия ред. } маркира края на тялото на оператора if.
- Другата част от горния оператор if. Там се посочва какво да се направи, ако операцията a
- Текст за отпечатване на конзолата, ако операцията a C++ ключова дума за крайния ред. Той натиска курсора, за да започне да печата на следващия ред. } маркира края на тялото на оператора else.
- Извършване на аритметичната операция a>b в оператор за вземане на решение if, за да разберете дали е вярно или невярно. { отбелязва началото на тялото на оператора if.
- Текст за отпечатване на конзолата, ако операцията a>b е вярна. Краят е a C++ ключова дума за крайния ред. Той натиска курсора, за да започне да печата на следващия ред. } маркира края на тялото на оператора if.
- Другата част от горния оператор if. Той посочва какво да се направи, ако операцията a>b е невярна.
- Текст за отпечатване на конзолата, ако операцията a>b е false. Краят е a C++ ключова дума за крайния ред. Той натиска курсора, за да започне да печата на следващия ред. } маркира края на тялото на оператора else.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
логичен Operaтори
- логически оператори комбинирайте две/повече ограничения/условия. Логическите оператори също допълват оценката на разглежданото първоначално състояние. Те включват:
OperaTor | Descriptйон |
---|---|
&& логически оператор И. | Условието е вярно, ако и двата операнда не са нула. |
|| логически оператор ИЛИ. | Условието е вярно, ако един от операндите е различен от нула. |
! логически оператор НЕ. | Той обръща логическото състояние на операнда. Ако операндът е верен, ! оператор го прави невярно. |
Например:
#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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата.
- { маркира началото на тялото на функцията main().
- Деклариране на 4 цели променливи a, b, c и d и присвояване на различни стойности.
- Използване на оператора && (И) в оператора if. Той обединява две условия, стойността на a е равна на стойността на b и стойността на a е по-голяма от стойността на b. Първото условие е невярно, второто условие е вярно. False&&true е False, следователно резултатът от if е false.
- Текст за отпечатване на конзолата, ако горното твърдение if е вярно. Това няма да бъде изпълнено.
- Част, която трябва да бъде изпълнена, ако горното if твърдение е невярно.
- Текст за отпечатване на конзолата, ако инструкцията if е невярна. Това ще бъде изпълнено.
- С помощта на || (OR) оператор в оператор if. Той обединява две условия, стойността на a е равна на стойността на b и стойността на a е по-голяма от стойността на b. Първото условие е невярно, второто условие е вярно. False||true е True, следователно резултатът от if е true.
- Текст за отпечатване на конзолата, ако горното твърдение if е вярно. Това ще бъде изпълнено.
- Част, която трябва да бъде изпълнена, ако горното if твърдение е невярно.
- Текст за отпечатване на конзолата, ако инструкцията if е невярна. Това няма да бъде изпълнено.
- Проверка дали стойността на променливата е 0.
- Текст за отпечатване на конзолата, ако горното твърдение if е вярно. Това няма да бъде изпълнено.
- Част, която трябва да бъде изпълнена, ако горното if твърдение е невярно.
- Текст за отпечатване на конзолата, ако инструкцията if е невярна. Това ще бъде изпълнено.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
побитовото Operaтори
Побитови оператори извършва операции на битово ниво върху операнди. Първо, операторите се преобразуват в битово ниво, след което се извършват операции върху операндите. Когато аритметични операции като събиране и изваждане се извършват на битово ниво, резултатите могат да бъдат постигнати по-бързо. Те включват:
OperaTor | Descriptйон |
---|---|
& (побитово И). | Необходими са 2 числа (операнди), след което изпълнява И за всеки бит от две числа. Ако и двете са 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
- Деклариране на целочислена променлива без знак p и присвояване на стойност 60, което е 0011 1100 в двоична система.
- Деклариране на целочислена променлива без знак q и присвояване на стойност 13, което е 0000 1101 в двоична система.
- Деклариране на целочислена променлива z и инициализиране на 0.
- Извършване на побитова операция & (И) върху променливи p и q и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на побитово | (OR) операция върху променливи p и q и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на побитова операция ^ (XOR) върху променливи p и q и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на побитова операция ~ (НЕ) върху променливи p и q и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на ляво изместване на променлива p и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на операция за смяна надясно на променлива p и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
Задание Operaтори
Оператори за присвояване присвояване на стойности на променливи. Операндът/променливата се добавя към лявата страна на оператора, докато стойността се добавя към дясната страна на оператора. Променливата и стойността трябва да принадлежат към един и същ тип данни, в противен случай, the C++ компилаторът ще предизвика грешка.
Например:
x = 5;
В горния пример x е променливата/операндът, = е операторът за присвояване, докато 5 е стойността. Ето популярните оператори за присвояване в C++:
OperaTor | Descriptйон |
---|---|
= (прост оператор за присвояване) | Той присвоява стойност отдясно на променлива отляво. |
+= (оператор за добавяне И) | Първо добавя стойността на левия операнд към стойността на десния операнд, след което присвоява резултата на променливата отляво. |
-= (Оператор за изваждане И присвояване) | Първо изважда стойността на десния операнд от стойността на левия операнд, след което присвоява резултата на променливата отляво. |
*= (Оператор за умножение И присвояване) | Първо умножава стойността на левия операнд със стойността на десния операнд, след което присвоява резултата на променливата отляво. |
/= (оператор за деление И присвояване) | Първо разделя стойността на левия операнд на стойността на десния операнд, след което присвоява резултата на променливата отляво. |
Например:
#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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата.
- { маркира началото на тялото на функцията main().
- Деклариране на целочислена променлива x и присвояване на стойност 5.
- Отпечатване на стойността на променлива x заедно с друг текст на конзолата. \n е знак за нов ред. Премества курсора на следващия ред при печат.
- Добавяне на 5 към стойността на променлива x и присвояване на резултат на променлива x.
- Отпечатване на стойността на променлива x на конзолата заедно с друг текст.
- Изваждане на 5 от стойността на x и присвояване на резултата на променлива x.
- Отпечатване на стойността на променлива x на конзолата заедно с друг текст.
- Умножаване на стойност на променлива x с 5 и присвояване на резултата на променлива x.
- Отпечатване на стойността на променлива x на конзолата заедно с друг текст.
- Разделяне на стойността на променлива x на 5 и присвояване на резултата на променлива x.
- Отпечатване на стойността на променлива x на конзолата заедно с друг текст.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
Други Operaтори
Други Operaтори включва оператор sizeof, запетая Operator, Условно Operaтор, и OperaTors Предимство.
Нека обсъдим други оператори, поддържани от 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
- Определяне на размера на целочислен тип данни с помощта на оператор sizeof и отпечатването му заедно с друг текст на конзолата.
- Определяне на размера на символния тип данни с помощта на оператор sizeof и отпечатването му заедно с друг текст на конзолата.
- Определяне на размера на типа данни float с помощта на оператор sizeof и отпечатването му заедно с друг текст на конзолата.
- Определяне на размера на типа данни float с помощта на оператор 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; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
- Деклариране на две цели променливи x и y.
- Присвояване на променливата ya на стойност 100.
- Увеличаване на стойността на y и присвояване на резултата на променлива x. Започва с y при 100, след което го увеличава до 101 (y++). След това y се добавя към 10. Накрая y, все още на 101, се добавя към 99, което дава 200. x сега е 200.
- Отпечатване на стойността на променлива x на конзолата.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
условен OperaTor
Този оператор оценява условие и действа въз основа на резултата от оценката.
Синтаксис:
Condition ? Expression2 : Expression3;
Параметри:
- Условието е условието, което трябва да бъде оценено.
- Expression1 е изразът, който трябва да бъде изпълнен, ако условието е вярно.
- Expression3 е изразът, който трябва да бъде изпълнен, ако условието е невярно.
Например:
#include <iostream> using namespace std; int main() { int a = 1, b; b = (a < 10) ? 2 : 5; cout << "value of b: " << b << endl; return 0; }
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
- Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
- Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
- Деклариране на две цели променливи а и б. На променлива a е присвоена стойност 1.
- Присвояване на стойност на променлива b. Ако променлива a е по-малка от 10, на b ще бъде присвоена стойност 2, в противен случай на b ще бъде присвоена стойност 5.
- Отпечатване на стойността на променлива b на конзолата заедно с друг текст.
- Функцията main() трябва да върне стойност, ако програмата работи добре.
- Край на тялото на функцията main().
OperaTors Предимство
Една операция може да има повече от един оператор. В този случай приоритетът на оператора определя първо оценения.
Следващият списък показва приоритета на операторите в C++, с намаляващ приоритет отляво надясно:
(), [],*, /, %, +/-, << , >>, == , !=, ^, |, &&, ||, ?:, =, +=, -=, *= , /=
Oбобщение
- Operaторите са символи за извършване на логически и аритметични операции.
- Аритметичните оператори ни помагат да извършваме различни аритметични операции върху операнди.
- Релационните оператори ни помагат да извършваме различни операции за сравнение на операнди.
- Логическите оператори ни помагат да извършваме различни логически операции върху операндите.
- Побитови оператори ни помагат да извършваме побитови операции върху операнди.
- Операторите за присвояване ни помагат да извършваме различни аритметични операции върху операнди.
- Операторът sizeof връща размера на променлива или тип данни.
- Операторът запетая изпълнява последователност от операции.
- Условният оператор оценява условие и действа въз основа на резултата.