Operaторове в C++Видове с пример

⚡ Умно обобщение

Operaторове в C++ са символи, които извършват операции с операнди, вариращи от аритметични действия и сравнение до логически, побитови и действия за присвояване. Този ресурс обяснява всяка категория оператори с примерни програми, изходни данни и правилата за приоритет, които определят реда на оценка.

  • аритметика Operaторове: Извършвайте математически операции като събиране, извличанеtracумножение, деление, модул, нарастване и намаляване на числови операнди.
  • Релационна Operaторове: Сравнява два операнда, използвайки проверки за равенство и подреждане, връщайки резултат „вярно“ или „невярно“.
  • 🔗 логичен Operaторове: Комбинирайте или обърнете условията с И, ИЛИ и НЕ, за да контролирате решенията на програмата.
  • 🔢 побитовото Operaторове: Operaдиректно върху отделни битове, използвайки операции AND, OR, XOR, NOT и shift за по-бърза работа на ниско ниво.
  • 📝 Задание и други Operaторове: Присвояване на стойности, плюс sizeof, запетая и условния оператор, като всяка от тях е демонстрирана с примерен изход.
  • 📊 OperaПриоритет на tor: Правилата за приоритет определят кой оператор в сложен израз се оценява първи.

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йон
+ оператор за добавяне Добавя два операнда.
- 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;
}

Изход:

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

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

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

Code Обяснение:

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

Code Обяснение:

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

Изход:

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

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

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

Code Обяснение:

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

Изход:

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

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

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

Code Обяснение:

  1. Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
  2. Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
  3. Извикване на функцията 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. Извършване на побитовата ~ (NOT) операция върху променлива p и съхраняване на резултата в променлива z.
  14. Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
  15. Извършване на ляво изместване на променлива p и съхраняване на резултата в променлива z.
  16. Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
  17. Извършване на операция за смяна надясно на променлива p и съхраняване на резултата в променлива z.
  18. Отпечатване на резултата от горната операция на конзолата заедно с друг текст.
  19. Функцията main() трябва да върне стойност, ако програмата работи добре.
  20. Край на тялото на функцията 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;
}

Изход:

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

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

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

Code Обяснение:

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

Изход:

sizeof оператор

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

sizeof оператор

Code Обяснение:

  1. Включване на заглавния файл на iostream в нашия код. Това ще ни позволи да четем от и да пишем в конзолата.
  2. Включва пространството от имена std, за да използва неговите класове и функции, без да го извиква.
  3. Извикване на функцията main(), в която трябва да се добави логиката на програмата.
  4. Определяне на размера на целочисления тип данни с помощта на оператора sizeof и отпечатването му заедно с друг текст на конзолата.
  5. Определяне на размера на символния тип данни с помощта на оператора sizeof и изписването му заедно с друг текст на конзолата.
  6. Определяне на размера на типа данни float с помощта на оператора sizeof и отпечатването му заедно с друг текст на конзолата.
  7. Определяне на размера на типа данни double с помощта на оператора 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

Code Обяснение:

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

Изход:

условен OperaTor

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

условен OperaTor

Code Обяснение:

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

OperaTors Предимство

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

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

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

Въпроси и Отговори

Асистентите за кодиране с изкуствен интелект могат да предложат правилния оператор, да обяснят приоритета и да сигнализират за грешки, като например объркване на = с ==. Те ускоряват обучението, но разбирането на поведението на операторите самостоятелно остава от съществено значение за писането на надежден код.

Не. Инструментите с изкуствен интелект могат да форматират и преглеждат изрази, но приоритетът влияе директно върху изхода на програмата. Познаването на приоритета ви помага да четете код, да отстранявате логически грешки и да пишете изрази, които се държат точно както е предвидено.

OperaПретоварването на tor ви позволява да предефинирате как работи даден оператор за потребителски дефинирани типове, като например класове. Например, можете да претоварите оператора +, за да добавите два обекта, придавайки на персонализираните типове интуитивно, вградено поведение.

Префиксът (++i) първо увеличава стойността, след което я връща. Постфиксът (i++) първо връща текущата стойност, след което увеличава. Разликата е от значение, когато нарастването се използва в по-голям израз.

Операторът = присвоява стойност на променлива, докато операторът == сравнява две стойности за равенство и връща true или false. Използването на = вътре в условие по погрешка е често срещана грешка.

Обобщете тази публикация с: