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тори

Това са типовете оператори, използвани за извършване на математически/аритметични операции. Те включват:

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;
}

Изход:

аритметика Operaтори

Ето екранна снимка на кода:

аритметика Operaтори

Обяснение на кода:

  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тори

Тези видове оператори извършват сравнения на операнди. Например, може да се наложи да знаете кой операнд е по-голям от другия или по-малък от другия. Те включват:

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;
}

Изход:

Релационна Operaтори

Ето екранна снимка на кода:

Релационна Operaтори

Обяснение на кода:

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

Изход:

логичен Operaтори

Ето екранна снимка на кода:

логичен Operaтори

Обяснение на кода:

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

Изход:

побитовото Operaтори

Ето екранна снимка на кода:

побитовото Operaтори

Обяснение на кода:

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

Изход:

Задание Operaтори

Ето екранна снимка на кода:

Задание Operaтори

Обяснение на кода:

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

Изход:

sizeof оператор

Ето екранна снимка на кода:

sizeof оператор

Обяснение на кода:

  1. Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
  2. Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
  3. Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
  4. Определяне на размера на целочислен тип данни с помощта на оператор sizeof и отпечатването му заедно с друг текст на конзолата.
  5. Определяне на размера на символния тип данни с помощта на оператор sizeof и отпечатването му заедно с друг текст на конзолата.
  6. Определяне на размера на типа данни float с помощта на оператор sizeof и отпечатването му заедно с друг текст на конзолата.
  7. Определяне на размера на типа данни float с помощта на оператор sizeof и отпечатването му заедно с друг текст на конзолата.
  8. Функцията main() трябва да върне стойност, ако програмата работи добре.
  9. Край на тялото на функцията main().

запетая OperaTor

- оператор запетая (,) задейства изпълнението на последователност от операции. Той изразява първия операнд и отхвърля резултата. След това оценява втория операнд и връща стойността и типа.

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

Изход:

запетая OperaTor

Ето екранна снимка на кода:

запетая OperaTor

Обяснение на кода:

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

Изход:

условен OperaTor

Ето екранна снимка на кода:

условен OperaTor

Обяснение на кода:

  1. Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
  2. Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
  3. Извикване на функцията main(), в която трябва да се добави логиката на програмата. { маркира началото на тялото на функцията main().
  4. Деклариране на две цели променливи а и б. На променлива a е присвоена стойност 1.
  5. Присвояване на стойност на променлива b. Ако променлива a е по-малка от 10, на b ще бъде присвоена стойност 2, в противен случай на b ще бъде присвоена стойност 5.
  6. Отпечатване на стойността на променлива b на конзолата заедно с друг текст.
  7. Функцията main() трябва да върне стойност, ако програмата работи добре.
  8. Край на тялото на функцията main().

OperaTors Предимство

Една операция може да има повече от един оператор. В този случай приоритетът на оператора определя първо оценения.

Следващият списък показва приоритета на операторите в C++, с намаляващ приоритет отляво надясно:

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

Oбобщение

  • Operaторите са символи за извършване на логически и аритметични операции.
  • Аритметичните оператори ни помагат да извършваме различни аритметични операции върху операнди.
  • Релационните оператори ни помагат да извършваме различни операции за сравнение на операнди.
  • Логическите оператори ни помагат да извършваме различни логически операции върху операндите.
  • Побитови оператори ни помагат да извършваме побитови операции върху операнди.
  • Операторите за присвояване ни помагат да извършваме различни аритметични операции върху операнди.
  • Операторът sizeof връща размера на променлива или тип данни.
  • Операторът запетая изпълнява последователност от операции.
  • Условният оператор оценява условие и действа въз основа на резултата.