Какво представляват операторите?
Операторът е символ, използван за извършване на операции върху операнди. Операторът управлява операнди. Операциите могат да бъдат математически или логически. В C ++ има различни видове оператори за извършване на различни операции.
Помислете за следната операция:
a = x + y;
В горното изявление x и y са операндите, докато + е оператор на добавяне. Когато C ++ компилаторът срещне горния израз, той ще добави x и y и ще съхрани резултата в променлива a.
В този урок за C ++ ще научите:
- Какво представляват операторите?
- Аритметични оператори
- Релационни оператори
- Логически оператори
- Побитови оператори
- Оператори за присвояване
- Различен оператор
- sizeof оператор
- Запетая оператор
- Условен оператор
- Предимство на операторите
Аритметични оператори
Те са типовете оператори, използвани за извършване на математически / аритметични операции. Те включват:
Оператор | Описание |
+ оператор за добавяне | Добавя се към операндите. |
- оператор за изваждане | Изважда 2- ри операнд от 1- ви операнд. |
* оператор за умножение | Умножава 2 операнда. |
/ оператор на разделяне. | Разделя числителя на знаменателя. |
% модул оператор | Връща остатъка след разделяне. |
++ оператор за увеличаване | Увеличава целочислена стойност с 1. |
- оператор на декремент. | Намалява цяло число с 1. |
Например:
#includeusing namespace std;int main() {int a = 11;int b = 5;int c;cout << "a + b is : << a+b << endl; //11+5cout << "a - b is : << a-b << endl; //11-5cout << "a * b is : << a*b << endl; //11*5cout << "a / b is : << a/b << endl; //11/5cout << "a % b is : << a%b << endl; //11%5cout << "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 () трябва да върне стойност, ако програмата работи нормално.
- Край на тялото на основната () функция.
Релационни оператори
Този тип оператори извършват сравнения на операндите. Например може да се наложи да знаете кой операнд е по-голям от другия или по-малък от другия. Те включват:
Описание
Оператор | Описание |
== равно на оператор. | Проверява равенството на две операндни стойности. |
! = не е равно на оператор | Проверява равенството на две операндни стойности. |
> страхотно от оператора | Проверява дали стойността на левия операнд е по-голяма от стойността на десния операнд. |
<по-малко от оператора. | Проверява дали стойността на левия операнд е по-малка от стойността на десния операнд. |
> = по-голямо или равно на оператора | Проверява дали стойността на левия операнд е по-голяма или равна на стойността на десния операнд. |
<= по-малко или равно на оператора. | Проверява дали стойността на левия операнд е по-малка или равна на стойността на десния операнд. |
Например:
#includeusing 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.
- Текст за отпечатване на конзолата, ако операцията a == b е вярна. Endl е ключова дума C ++ за краен ред. Той натиска курсора, за да започне печат в следващия ред. The} отбелязва края на тялото на оператора if.
- Останалата част от горното твърдение if. В него се посочва какво да се прави, ако операцията a == b е невярна.
- Текст за отпечатване на конзолата, ако операцията a == b е невярна. Endl е ключова дума C ++ за краен ред. Той натиска курсора, за да започне печат в следващия ред. The} отбелязва края на тялото на оператора else.
- Извършване на аритметична операция, a
- Текст за отпечатване на конзолата, ако операцията a
- Останалата част от горното твърдение if. В него се посочва какво да се прави, ако операцията a
- Текст за отпечатване на конзолата, ако операцията a
- Извършване на аритметична операция a> b в оператор за вземане на решения, ако се знае дали е вярно или не. {Отбелязва началото на тялото на оператора if.
- Текст за отпечатване на конзолата, ако операцията a> b е вярна. Endl е ключова дума C ++ за краен ред. Той натиска курсора, за да започне печат в следващия ред. The} отбелязва края на тялото на оператора if.
- Останалата част от горното твърдение if. В него се посочва какво да се прави, ако операцията a> b е невярна.
- Текст за отпечатване на конзолата, ако операцията a> b е невярна. Endl е ключова дума C ++ за краен ред. Той натиска курсора, за да започне печат в следващия ред. The} отбелязва края на тялото на оператора else.
- Функцията main () трябва да върне стойност, ако програмата работи нормално.
- Край на тялото на основната () функция.
- Текст за отпечатване на конзолата, ако операцията a
Логически оператори
Логическите оператори комбинират две / повече ограничения / условия. Логическите оператори също допълват оценката на първоначалното състояние, което се разглежда. Те включват:
Оператор | Описание |
&& логически И оператор. | Условието е вярно, ако и двата операнда не са нула. |
|| логически ИЛИ оператор. | Условието е вярно, ако един от операндите не е нула. |
! логически оператор НЕ. | Той обръща логичното състояние на операнда. Ако операндът е истина,! оператор го прави фалшив. |
Например:
#includeusing 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";elsecout << "AND operation returned false\n";if (a == b || c> d)cout << "a equals to b OR c is greater than d\n";elsecout << "Neither a is equal to b nor c is greater than d\n";if (!b)cout << "b is zero\n";elsecout << "b is not zero";return 0;}
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем на конзолата.
- Включително std пространството от имена, за да се използват класовете и функциите му, без да го извиквате.
- Извикване на функцията main (), в която трябва да се добави логиката на програмата.
- {Маркира начало на тялото на функцията main ().
- Деклариране на 4 целочислени променливи a, b, c и d и присвояване на различни стойности.
- Използване на оператора && (И) в оператора if. Той обединява две условия, стойността на равно е на стойност на b и, стойността на a е по-голяма от стойността на b. Първото условие е невярно, второто условие е вярно. False && true е False, следователно резултатът от if е false.
- Текст за отпечатване на конзола, ако горното if твърдение е вярно. Това няма да бъде изпълнено.
- Част, която трябва да се изпълни, ако горното твърдение if е невярно.
- Текст за отпечатване на конзолата, ако операторът if е невярно. Това ще бъде изпълнено.
- Използване на || (ИЛИ) оператор в if оператор. Той обединява две условия, стойността на равно е на стойност на b и, стойността на a е по-голяма от стойността на b. Първото условие е невярно, второто условие е вярно. False || true е True, следователно резултатът от if е true.
- Текст за отпечатване на конзола, ако горното if твърдение е вярно. Това ще бъде изпълнено.
- Част, която трябва да се изпълни, ако горното твърдение if е невярно.
- Текст за отпечатване на конзолата, ако операторът if е невярно. Това няма да бъде изпълнено.
- Проверка дали стойността на променливата е 0.
- Текст за отпечатване на конзола, ако горното if твърдение е вярно. Това няма да бъде изпълнено.
- Част, която трябва да се изпълни, ако горното твърдение if е невярно.
- Текст за отпечатване на конзолата, ако операторът if е невярно. Това ще бъде изпълнено.
- Функцията main () трябва да върне стойност, ако програмата работи нормално.
- Край на тялото на основната () функция.
Побитови оператори
Побитовите оператори извършват операции на ниво бит върху операндите. Първо, операторите се преобразуват в битово ниво, след което се извършват операции върху операндите. Когато аритметичните операции като събиране и изваждане се извършват на битово ниво, резултатите могат да бъдат постигнати по-бързо. Те включват:
Оператор | Описание |
& (побитово И). | Отнема 2 числа (операнди), след което изпълнява И на всеки бит от две числа. Ако и двете са 1, И връща 1, в противен случай 0. |
| (побитово ИЛИ) | Взема 2 числа (операнди), след което извършва ИЛИ на всеки бит от две числа. Той връща 1, ако един от битовете е 1. |
(битовият XOR) | Взема 2 числа (операнди), след което изпълнява XOR на всеки бит от 2 числа. Той връща 1, ако двата бита са различни. |
<< (лява смяна) | Взема две числа, след което наляво измества битовете на първия операнд. Вторият операнд определя общите места за смяна. |
>> (дясна смяна) | Взема две числа, след което надясно измества битовете на първия операнд. Вторият операнд определя броя на местата за преместване. |
~ (побитово НЕ). | Взима число, след което обръща всичките си битове. |
#includeusing namespace std;int main() {unsigned int p = 60; // 60 = 0011 1100unsigned int q = 13; // 13 = 0000 1101int z = 0;z = p & q;cout << "p&q is : " << z << endl; // 12 = 0000 1100z = p | q;cout << "p|q is : " << z << endl; // 61 = 0011 1101z = p q;cout << "p^q is : " << z << endl; // 49 = 0011 0001z = ~p;cout << "~p is : " << z << endl; // -61 = 1100 0011z = p << 2;cout << "p<<2 is: " << z << endl; // 240 = 1111 0000z = p>> 2;cout << "p>>2 is : " << z << endl; // 15 = 0000 1111return 0;}
Изход:
Ето екранна снимка на кода:
Обяснение на кода:
- Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем на конзолата.
- Включително std пространството от имена, за да се използват класовете и функциите му, без да го извиквате.
- Извикване на функцията main (), в която трябва да се добави логиката на програмата. {Маркира начало на тялото на функцията main ().
- Деклариране на неподписани целочислени променливи p и присвояване на стойност 60, което е 0011 1100 в двоично.
- Деклариране на неподписани целочислени променливи q и присвояване на стойност от 13, което е 0000 1101 в двоично.
- Деклариране на целочислена променлива z и инициализиране на 0.
- Извършване на битовата операция & (И) върху променливи p и q и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване побитово | (ИЛИ) операция с променливи p и q и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на битовата операция (XOR) върху променливи p и q и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на битовата операция ~ (NOT) върху променливи p и q и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на операцията за лява смяна на променлива p и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Извършване на операцията за дясна смяна на променлива p и съхраняване на резултата в променлива z.
- Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
- Функцията main () трябва да върне стойност, ако програмата работи нормално.
- Край на тялото на основната () функция.
Оператори за присвояване
Операторите на присвояване присвояват стойности на променливи. Операндът / променливата се добавя от лявата страна на оператора, докато стойността се добавя от дясната страна на оператора. Променливата и стойността трябва да принадлежат към един и същи тип данни, в противен случай компилаторът на C ++ ще предизвика грешка. Например:
x = 5;
В горния пример x е променливата / операнда, = е операторът за присвояване, докато 5 е стойността. Ето популярните оператори за присвояване в C ++:
Оператор | Описание |
= (опростен оператор за присвояване) | Той присвоява стойност отдясно на променлива отляво. |
+ = (Добавяне и оператор за присвояване) | Първо добавя стойност на левия операнд към стойността на десния операнд, след което присвоява резултат на променлива вляво. |
- = (Изваждане и оператор за присвояване) | Първо изважда стойността на десния операнд от стойността на левия операнд, след което присвоява резултат на променлива вляво. |
* = (Умножение и оператор за присвояване) | Първо умножава стойността на левия операнд със стойността на десния операнд, след което присвоява резултат на променлива вляво. |
/ = (Оператор за разделяне И присвояване) | Първо разделя стойността на левия операнд на стойността на десния операнд, след което присвоява резултат на променлива вляво. |
Например:
#includeusing 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 () трябва да върне стойност, ако програмата работи нормално.
- Край на тялото на основната () функция.
Различен оператор
Нека обсъдим други оператори, поддържани от C ++:
sizeof оператор
Този оператор определя размера на променлива. Използвайте оператора sizeof, за да определите размера на даден тип данни. Например:
#includeusing 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 оператор и отпечатването му заедно с друг текст на конзолата.
- Определяне на размера на типа данни с поплавък с помощта на sizeof оператор и отпечатването му заедно с друг текст на конзолата
- Определяне на размера на типа данни с поплавък с помощта на sizeof оператор и отпечатването му заедно с друг текст на конзолата
- Функцията main () трябва да върне стойност, ако програмата работи нормално.
- Край на тялото на основната () функция.
Запетая оператор
Операторът със запетая (,) задейства изпълнението на последователност от операции. Той изразява първия операнд и отхвърля резултата. След това оценява втория операнд и връща стойността и типа.
#includeusing 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 () трябва да върне стойност, ако програмата работи нормално.
- Край на тялото на основната () функция.
Условен оператор
Този оператор оценява състояние и действа въз основа на резултата от оценката.
Синтаксис:
Condition ? Expression2 : Expression3;
Параметри:
- Условието е условието, което трябва да бъде оценено.
- Expression1 е изразът, който трябва да се изпълни, ако условието е вярно.
- Expression3 е изразът, който трябва да се изпълни, ако условието е false.
Например:
#includeusing 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 и b. На променлива a е присвоена стойност 1.
- Присвояване на стойност на променлива b. Ако променлива a е по-малка от 10, на b ще бъде присвоена стойност 2, в противен случай на b ще бъде присвоена стойност 5.
- Стойност за отпечатване на променлива b на конзолата заедно с друг текст.
- Функцията main () трябва да върне стойност, ако програмата работи нормално.
- Край на тялото на основната () функция.
Предимство на операторите
Една операция може да има повече от един оператор. В този случай приоритетът на оператора определя първо оценения.
Следващият списък показва предимството на операторите в C ++, с намаляващ приоритет отляво надясно:
(), [], *, /,%, +/-, <<, >>, ==,! =, ^, |, &&, ||,?:, =, + =, - =, 8 = , / =
Резюме:
- Операторите са символи за извършване на логически и аритметични операции.
- Аритметичните оператори ни помагат да изпълняваме различни аритметични операции върху операндите.
- Релационните оператори ни помагат да изпълняваме различни операции за сравнение на операндите.
- Логическите оператори ни помагат да изпълняваме различни логически операции върху операндите.
- Побитовите оператори ни помагат да изпълняваме побитови операции над операндите.
- Операторите на присвояване ни помагат да изпълняваме различни аритметични операции над операндите.
- Операторът sizeof връща размера на променлива или тип данни.
- Операторът със запетая изпълнява последователност от операции.
- Условният оператор оценява състояние и действа въз основа на резултата.