Операторы в C++ на примере: что такое, типы и программы

Что такое операторы?

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

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

a = x + y;

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

Типы операторов в C++

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

  1. Арифметические операторы
  2. Операторы отношения
  3. Логические операторы
  4. Немногоwise Операторы
  5. Операторы присваивания
  6. Другие операторы

Арифметические операторы

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

оператор Описание
+ оператор сложения Добавляет к операндам.
– оператор вычитания Вычитает 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;
}

Вывод:

Арифметические операторы

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

Арифметические операторы

Пояснение к коду:

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

Операторы отношения

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

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

Например:

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

Вывод:

Операторы отношения

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

Операторы отношения

Пояснение к коду:

  1. Включение заголовочного файла iostream в наш код. Это позволит нам читать и писать в консоль.
  2. Включая пространство имен std, чтобы использовать его классы и функции без его вызова.
  3. Вызов функции main(), внутри которой должна быть добавлена ​​логика программы. { отмечает начало тела функции main().
  4. Объявление целочисленной переменной a и инициализация ее значением 11.
  5. Объявление целочисленной переменной b и инициализация ее значением 5.
  6. Вывод на консоль текста с указанием значений переменных a и b.
  7. Выполнение арифметической операции a==b в операторе принятия решения if, чтобы узнать, истинно оно или ложно. { отмечает начало тела оператора if.
  8. Текст для печати на консоли, если операция a==b истинна. Endl — это ключевое слово C++ для обозначения конечной строки. Он подталкивает курсор, чтобы начать печать на следующей строке. } отмечает конец тела оператора if.
  9. Другая часть приведенного выше оператора if. В нем указывается, что делать, если операция a==b ложна.
  10. Текст для печати на консоли, если операция a==b является ложной. Endl — это ключевое слово C++ для обозначения конечной строки. Он подталкивает курсор, чтобы начать печать на следующей строке. } отмечает конец тела оператора else.
  11. Выполнив арифметическую операцию, А.
  12. Текст для печати на консоли, если операция
  13. Другая часть приведенного выше оператора if. В нем указано, что делать, если операция
  14. Текст для печати на консоли, если операция
  15. Выполнение арифметической операции a>b в операторе принятия решения if, чтобы узнать, истинно оно или ложно. { отмечает начало тела оператора if.
  16. Текст для печати на консоли, если операция a>b истинна. Endl — это ключевое слово C++ для обозначения конечной строки. Он подталкивает курсор, чтобы начать печать на следующей строке. } отмечает конец тела оператора if.
  17. Другая часть приведенного выше оператора if. В нем указывается, что делать, если операция a>b ложна.
  18. Текст для печати на консоли, если операция a>b является ложной. Endl — это ключевое слово C++ для обозначения конечной строки. Он подталкивает курсор, чтобы начать печать на следующей строке. } отмечает конец тела оператора else.
  19. Функция main() должна возвращать значение, если программа работает нормально.
  20. Конец тела функции main().

Логические операторы

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

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

Например:

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

Вывод:

Логические операторы

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

Логические операторы

Пояснение к коду:

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

Немногоwise Операторы

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

оператор Описание
& (кусочекwise И). Требуется два числа (операнда), а затем выполняется AND для каждого бита двух чисел. Если оба равны 2, И возвращает 1, другоеwise 0.
| (кусочекwise ИЛИ) Принимает 2 числа (операнда), а затем выполняет ИЛИ для каждого бита двух чисел. Он возвращает 1, если один из битов равен 1.
^ (битwise исключающее ИЛИ) Принимает 2 числа (операнда), а затем выполняет XOR для каждого бита 2 чисел. Он возвращает 1, если оба бита различны.
<< (сдвиг влево) Принимает два числа, затем сдвигает влево биты первого операнда. Второй операнд определяет общее количество мест для сдвига.
>> (правый сдвиг) Принимает два числа, затем сдвигает вправо биты первого операнда. Второй операнд определяет количество мест для сдвига.
~ (битwise НЕТ). Берет число, а затем инвертирует все его биты.
#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;
}

Вывод:

Немногоwise Операторы

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

Немногоwise Операторы

Пояснение к коду:

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

Операторы присваивания

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

x = 5;

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

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

Например:

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

Вывод:

Операторы присваивания

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

Операторы присваивания

Пояснение к коду:

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

Другие операторы

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

Оператор запятой

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

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

Вывод:

Оператор запятой

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

Оператор запятой

Пояснение к коду:

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

Условный оператор

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

Синтаксис:

Condition ? Expression2 : Expression3;

Параметры:

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

Вывод:

Условный оператор

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

Условный оператор

Пояснение к коду:

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

Приоритет операторов

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

Фоллоwing список показывает приоритет операторов в C++ с уменьшением приоритета слева направо:

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

Выводы

  • Операторы — это символы для выполнения логических и арифметических операций.
  • Арифметические операторы помогают нам выполнять различные арифметические операции с операндами.
  • Операторы отношения помогают нам выполнять различные операции сравнения операндов.
  • Логические операторы помогают нам выполнять различные логические операции с операндами.
  • Немногоwise Операторы помогите нам немного выступитьwise операции над операндами.
  • Операторы присваивания помогают нам выполнять различные арифметические операции с операндами.
  • Оператор sizeof возвращает размер переменной или типа данных.
  • Оператор запятая выполняет последовательность операций.
  • Условный оператор оценивает условие и действует на основе результата.