Операторы инкремента (++), декремента (––). Составные операторы присваивания (+=, -=, …)
Содержание
- 1. Какие особенности использования операторов инкремента и декремента в программах на C++?
- 2. Примеры применения операторов инкремента (++) и декремента (––)
- 3. Какое отличие между выражением ++x (––x) и выражением x++ (x––)?
- 4. Какие составные операторы присваивания используются в C++?
- 5. Примеры использования составных операторов присваивания
- 6. Можно ли применять операции инкремента (++) и декремента (––) к типу bool?
- 7. Можно ли применять операции инкремента и декремента к вещественным типам (float, double, long double)?
- 8. Можно ли применять операции инкремента и декремента к переменным символьного типа (char)?
- Связанные темы
Поиск на других ресурсах:
1. Какие особенности использования операторов инкремента и декремента в программах на C++?
В языке C++ определены два оператора, которые осуществляют увеличение или уменьшение целочисленной величины на 1:
- оператор ++ – инкремент;
- оператор –– – декремент.
Эти операторы являются унарными. Они требуют одного операнда. Эти операторы могут размещаться до и после операнда.
Оператор инкремента ++ увеличивает значение операнда на 1. Например, строка
x = x + 1;
есть аналогична строке
x++;
или
++x;
Так же, оператор декремента –– уменьшает значение операнда на 1. Например, строку
x = x – 1;
можно записать
x--;
или
--x;
⇑
2. Примеры применения операторов инкремента (++) и декремента (––)
Фрагмент кода, который объясняет работу операторов ++ и ––.
// операторы инкремента (++) и декремента (--) int a, b; a = 10; b = a++; // b = 10; a = 11 a = 10; b = ++a; // b = 11; a = 11 a = 10; b = a--; // b = 10; a = 9 a = 10; b = --a; // b = 9; a = 9
⇑
3. Какое отличие между выражением ++x (––x) и выражением x++ (x––)?
Отличие между префиксной и постфиксной формами операторов инкремента (++) и декремента (––) проявляется в случаях, когда эти операторы принимают участие в операторе присваивания.
Если префиксное выражение ++x используется в операторе присваивания
y = ++x;
то оно работает по следующему принципу:
- сначала значение x увеличивается на 1, а затем результирующее значение присваивается переменной y.
Если выполнить постфиксную форму оператора инкремента
y = x++;
то в этом случае:
- сначала переменной y присваивается значение x, а потом значение x увеличивается на 1.
⇑
4. Какие составные операторы присваивания используются в C++?
В языке C++ можно использовать составные операторы присваивания. Эти операторы являются удобны, когда в программе используются длинные имена переменных. В этом случае отпадает необходимость лишний раз вводить длинное имя переменной.
Общий вид составного оператора присваивания следующий:
имя_переменной operation= выражение;
где
- имя_переменной – непосредственно имя переменной, которой присваивается значение;
- operation – одна из операций +, —, *, /, %, &, |, ^, <<, >>.
Язык C++ поддерживает следующие составные операторы присваивания:
+=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=
⇑
5. Примеры использования составных операторов присваивания
// составные операторы присваивания float x, y; int a, b; // +=, -= a = 8; b = 5; a += b; // a = a + b = 13 b -= 4; // b = b - 4 = 1 // *=, /= x = 4; y = 5; x *= y; // x = x * y = 4 * 5 = 20 y /= 2.5; // y = y / 2.5 = 2.0 // &=, |= a = 8; b = 3; a &= b + 5; // a = a & b + 5 = a & (b+5) = 8 a |= b; // a = a | b = 11 // >>=, <<= a = 34; a >>= 1; // a = a >> 1 = 17 a = 6; a <<= 3; // a = a << 3 = 48 // %= b = 15; b %= 6; // b = b % 6 = 3
⇑
6. Можно ли применять операции инкремента (++) и декремента (––) к типу bool?
В Visual C++ только операцию инкремента (++) можно применять к типу bool.
Если использовать операцию декремента (––) к типу bool, тогда компилятор выдает сообщение об ошибке:
Not allowed on operand of type 'bool'
Пример использования операции инкремента над переменной типа bool
bool b; b = false; b++; // b = true b++; // b = true
⇑
7. Можно ли применять операции инкремента и декремента к вещественным типам (float, double, long double)?
С переменными вещественного типа операции инкремента и декремента работают точно так же, как и с переменными целого типа.
Пример.
float x; x = 24.5; x--; // x = 23.5
⇑
8. Можно ли применять операции инкремента и декремента к переменным символьного типа (char)?
Поскольку, символьный тип char неявно относится к целочисленным типам, то к переменным символьного типа можно применять операции инкремента и декремента.
Пример.
char c; c = 'x'; c++; // c = 'y' c = '6'; --c; // c = '5'
⇑
Связанные темы
- Понятие выражения. Операция присваивания. Преобразование и приведение типов
- Арифметические операции
- Операции отношений
- Логические операции. Поразрядные логические операции. Операции сдвига
- Таблица приоритетности операций
- Операция sizeof. Операция ? :