OperaТоры в C++Типы с примерами

⚡ Умное резюме

OperaТоры в C++ Это символы, выполняющие операции над операндами, от арифметических и сравнительных до логических, побитовых и присваивающих действий. В этом ресурсе объясняется каждая категория операторов с примерами выполнения программ, выводом результатов и правилами приоритета, определяющими порядок вычисления.

  • Арифметический OperaТорс: Выполняйте математические операции, такие как сложение, вычитание.tracУмножение, деление, взятие остатка от деления, приращение и уменьшение числовых операндов.
  • реляционный OperaТорс: Сравнивает два операнда, используя проверки на равенство и порядок, и возвращает результат «истина» или «ложь».
  • 🔗 логический OperaТорс: Для управления решениями программы можно комбинировать или менять местами условия с помощью операторов И, ИЛИ и НЕ.
  • 🔢 побитовое OperaТорс: OperaДля ускорения низкоуровневой работы можно напрямую работать с отдельными битами, используя операции И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ, НЕ и сдвиг.
  • ???? Задания и прочее OperaТорс: Присваивайте значения, а также используйте операторы sizeof, comma и условный оператор; каждый из них демонстрируется на примере выходных данных.
  • 📊 OperaПриоритет: Правила приоритета определяют, какой оператор в сложном выражении будет вычислен первым.

OperaТоры в C++

Каковы OperaТорс?

Оператор Оператор — это символ, используемый для выполнения операций над операндами. Оператор работает с операндами, и эти операции могут быть математическими или логическими. Существуют различные типы операторов. C++ для выполнения различных операций.

Рассмотрим следующую операцию:

a = x + y;

В приведенном выше утверждении x и y являются операндами, а + — оператором сложения. Когда C++ компилятор встретит приведенный выше оператор, он добавит x и y и сохранит результат в переменной a.

Виды OperaТоры в C++

В основном 6 различных типов операторов в C++:

  1. Арифметический OperaTORs
  2. реляционный OperaTORs
  3. логический OperaTORs
  4. побитовое OperaTORs
  5. Назначение OperaTORs
  6. Прочее OperaTORs

Начнём с арифметических операторов, наиболее часто используемой категории.

Арифметический OperaTORs

Это типы операторов, используемые для выполнения математических/арифметических операций. Они включают:

оператор Описание
+ оператор сложения Добавляет два операнда.
- подtracоператор связи ниже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;
}

Выход:

Арифметический OperaTORs

Вот скриншот кода:

Арифметический OperaTORs

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().

реляционный OperaTORs

Эти типы операторов выполняют сравнение операндов. Например, вам может потребоваться узнать, какой операнд больше другого или меньше другого. Они включают:

оператор Описание
== равен оператору Проверяет равенство значений двух операндов.
!= не равно оператору Проверяет неравенство двух значений операндов.
> оператор больше Проверяет, превышает ли значение левого операнда значение правого операнда.
оператор < меньше Проверяет, меньше ли значение левого операнда значения правого операнда.
>= оператор больше или равно Проверяет, больше ли значение левого операнда или равно значению правого операнда.
<= меньше или равно оператору Проверяет, меньше ли значение левого операнда или равно значению правого операнда.

Например:

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

Выход:

реляционный OperaTORs

Вот скриншот кода:

реляционный OperaTORs

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. Текст для вывода на консоль, если выполняется операция.
  13. Часть else используется, когда
  14. Текст для вывода на консоль, если выполняется операция.
  15. Проверка того, больше ли a, чем b, с помощью оператора if.
  16. Текст для вывода в консоль, если операция a>b истинна.
  17. В противном случае используется блок else, если a>b — ложное значение.
  18. Текст для вывода в консоль, если операция a>b ложна.
  19. Функция main() должна возвращать значение, если программа работает нормально.
  20. Конец тела функции main().

логический OperaTORs

логические операторы Объединение двух или более ограничений/условий. Логические операторы также дополняют оценку исходного рассматриваемого условия. К ним относятся:

оператор Описание
&& логический оператор И Условие выполняется, если оба операнда не равны нулю.
|| логический оператор ИЛИ Условие истинно, если один из операндов не равен нулю.
! логический оператор НЕ Этот оператор меняет логическое состояние операнда на противоположное. Если операнд истинен, оператор ! делает его ложным.

Например:

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

Выход:

логический OperaTORs

Вот скриншот кода:

логический OperaTORs

Code Объяснение:

  1. Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
  2. Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
  3. Вызов функции main(), внутри которой должна быть добавлена ​​логика программы.
  4. { отмечает начало тела функции main().
  5. Объявление 4 целочисленных переменных a, b, c и d и присвоение им различных значений.
  6. Использование оператора && (AND) внутри оператора if. Он объединяет два условия. Первое условие ложно, а второе истинно, поэтому false&&true — ложно; результат оператора if — ложь.
  7. Текст, который будет выведен в консоль, если вышеуказанное условие if истинно. Этот код выполняться не будет.
  8. Часть кода, которая будет выполнена, если приведенное выше условие if неверно.
  9. Текст для печати на консоли, если оператор if ложен. Это будет выполнено.
  10. Использование оператора || (ИЛИ) внутри оператора if. Первое условие ложно, а второе истинно, поэтому false||true — это true; результат оператора if — true.
  11. Текст, который будет выведен в консоль, если вышеуказанное условие if истинно. Этот код будет выполнен.
  12. Часть кода, которая будет выполнена, если приведенное выше условие if неверно.
  13. Текст для печати на консоли, если оператор if ложен. Это не будет выполнено.
  14. Проверка, равно ли значение переменной b нулю.
  15. Текст, который будет выведен в консоль, если вышеуказанное условие if истинно. Этот код выполняться не будет.
  16. Часть кода, которая будет выполнена, если приведенное выше условие if неверно.
  17. Текст для печати на консоли, если оператор if ложен. Это будет выполнено.
  18. Функция main() должна возвращать значение, если программа работает нормально.
  19. Конец тела функции main().

побитовое OperaTORs

Битовые операторы Выполнение побитовых операций над операндами. Сначала операнды преобразуются в побитовый формат, затем выполняются операции. Когда выполняются арифметические операции, такие как сложение и вычитание,tracЕсли операции выполняются на битовом уровне, результаты достигаются быстрее. К ним относятся:

оператор Описание
& (побитовое И) Принимает 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;
}

Выход:

побитовое OperaTORs

Вот скриншот кода:

побитовое OperaTORs

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. Выполнение побитового | (ИЛИ) операция над переменными p и q и сохранение результата в переменной z.
  10. Печать результата вышеуказанной операции на консоли вместе с другим текстом.
  11. Выполнение побитовой операции ^ (XOR) над переменными p и q и сохранение результата в переменной z.
  12. Печать результата вышеуказанной операции на консоли вместе с другим текстом.
  13. Выполнение побитовой операции ~ (НЕ) над переменной p и сохранение результата в переменной z.
  14. Печать результата вышеуказанной операции на консоли вместе с другим текстом.
  15. Выполнение операции сдвига влево над переменной p и сохранение результата в переменной z.
  16. Печать результата вышеуказанной операции на консоли вместе с другим текстом.
  17. Выполнение операции сдвига вправо над переменной p и сохранение результата в переменной z.
  18. Печать результата вышеуказанной операции на консоли вместе с другим текстом.
  19. Функция main() должна возвращать значение, если программа работает нормально.
  20. Конец тела функции main().

Назначение OperaTORs

Операторы присваивания Присваивание значений переменным. Операнд/переменная добавляется слева от оператора, а значение — справа. Переменная и значение должны принадлежать к одному и тому же типу данных, в противном случае... C++ Компилятор выдаст ошибку.

Например:

x = 5;

В приведенном выше примере x — это переменная/операнд, = — оператор присваивания, а 5 — значение. Вот популярные операторы присваивания. C++:

оператор Описание
= (простой оператор присваивания) Присваивает значение справа переменной слева.
+= (Добавить оператор присваивания AND) Добавляет значение правого операнда к левому операнду, затем присваивает результат переменной слева.
-= (Подtracоператор присваивания И) нижеtracЗатем вычисляет значение правого операнда из левого операнда и присваивает результат переменной слева.
*= (Оператор умножения И присваивания) Умножает значение левого операнда на правое, затем присваивает результат переменной слева.
/= (Оператор деления И присваивания) Делит значение левого операнда на правый операнд, затем присваивает результат переменной слева.

Например:

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

Выход:

Назначение OperaTORs

Вот скриншот кода:

Назначение OperaTORs

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().

Прочее OperaTORs

Прочее OperaTORs включить оператор размера, запятую Operaтор, Условный OperaТор, и OperaПриоритет операторов Tors. Давайте обсудим другие операторы, поддерживаемые Tors. 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().

Запятая Operaтор

оператор запятой Оператор (,) запускает выполнение последовательности операций. Он выражает первый операнд и отбрасывает результат. Затем он вычисляет второй операнд и возвращает значение и тип.

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

Выход:

Запятая Operaтор

Вот скриншот кода:

Запятая Operaтор

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().

Условный Operaтор

Этот оператор оценивает условие и действует на основе результата оценки.

Синтаксис:

Condition ? Expression2 : Expression3;

Параметры:

  • Условие — это условие, которое должно быть оценено.
  • Expression2 — это выражение, которое будет выполнено, если условие истинно.
  • 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;
}

Выход:

Условный Operaтор

Вот скриншот кода:

Условный Operaтор

Code Объяснение:

  1. Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
  2. Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
  3. Вызов функции main(), внутри которой должна быть добавлена ​​логика программы.
  4. Объявление двух целочисленные переменные а и б. Переменной a присвоено значение 1.
  5. Присвоение значения переменной b. Если значение переменной a меньше 10, переменной b будет присвоено значение 2, в противном случае переменной b будет присвоено значение 5.
  6. Вывод значения переменной b на консоль вместе с другим текстом.
  7. Функция main() должна возвращать значение, если программа работает нормально.
  8. Конец тела функции main().

OperaПриоритет

Одна операция может иметь более одного оператора. В этом случае приоритет оператора определяет тот, который вычисляется первым.

В следующем списке показан приоритет операторов в C++, с уменьшением приоритета слева направо:

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

Часто задаваемые вопросы (FAQ)

Искусственный интеллект, помогающий программистам, может предлагать правильный оператор, объяснять приоритет операций и указывать на ошибки, например, путать = с ==. Они ускоряют обучение, но понимание поведения операторов самостоятельно по-прежнему имеет важное значение для написания надежного кода.

Нет. Инструменты искусственного интеллекта могут форматировать и проверять выражения, но приоритет операций напрямую влияет на результат выполнения программы. Знание приоритета операций помогает читать код, отлаживать логические ошибки и писать выражения, которые работают именно так, как задумано.

OperaПерегрузка операторов позволяет переопределять принцип работы операторов для пользовательских типов, таких как классы. Например, можно перегрузить оператор + для сложения двух объектов, что придаст пользовательским типам интуитивно понятное поведение, подобное встроенным функциям.

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

Оператор «=» присваивает значение переменной, а оператор «==» сравнивает два значения на равенство и возвращает true или false. Случайное использование оператора «=» внутри условия — распространённая ошибка.

Подведем итог этой публикации следующим образом: