Для сокращённой записи выражений в языке программирования С++ есть специальные операции, которые называются операциями присваивания. Рассмотрим фрагмент кода, с использованием операции присваивания.
int value = 256; value = value + 256; // обычное выражение с использованием двух операций: = и + value += 256; // сокращённое эквивалентное выражение с использованием операции присваивания
В строке 2 переменной value
присваивается значение 512, полученное в результате суммы значения содержащегося в переменной value
с числом 256. В строке 3 выражение выполняет аналогичную операцию, что и в строке 2, но выражение записано в упрощённом виде. В этом выражении присутствует операция присваивания со знаком плюс +=
. Таким образом, операция +=
суммирует значение переменной value
co значением, которое находится правее: 256, и присваивает результат суммы этой же переменной. Как видно из примера оператор в строке 3 короче оператора в строке 2, хоть и выполняет аналогичную операцию. Так что, если некоторую переменную нужно изменить, то рекомендуется использовать операции присваивания.
В С++ существует пять операций присваивания, не считая основную операцию присваивания: =
.
+=
операция присваивания-сложения;-=
операция присваивания-вычитания;*=
операция присваивания-умножения;/=
операция присваивания-деления;%=
операция присваивания-остатка от деления;
Договоримся называть операции присваивания через дефис, чтобы было понятно о какой именно операции идёт речь. В таблице 1 наглядно показаны примеры использования операторов присваивания в языке программирования С++.
Операция | Обозначение | Пример | Экв.пример | Пояснение |
---|---|---|---|---|
операция присваивания-сложения | += | var += 16 | var = var + 16 | Прибавляем к значению переменной var число 16, результат суммирования сохраняется в переменной var |
операция присваивания-вычитания | -= | var -= 16 | var = var — 16 | Вычитаем из переменной var число 16, результат вычитания сохраняется в переменной var |
операция присваивания-умножения | *= | var *= 16 | var = var * 16 | Умножаем значение переменной var в 16 раз, результат умножения присваивается переменной var |
операция присваивания-деления | /= | var /= 16 | var = var / 16 | Делим значение переменной var на 16, результат деления присваивается переменной var |
операция присваивания-остатка от деления | %= | var %= 16 | var = var % 16 | Находим остаток от деления и сохраняем его в переменной var |
Разработаем программу, которая будет использовать операции присваивания.
// assignment.cpp: определяет точку входа для консольного приложения. #include "stdafx.h" #include <iostream> using namespace std; int main(int argc, char* argv[]) { int value = 256; cout << "value = " << value << endl; value += 256; // сокращённое выражение с использованием операции присваивания - сложения cout << "value += 256; >> " << value << endl; value -= 256; // сокращённое выражение с использованием операции присваивания - вычитания cout << "value -= 256; >> " << value << endl; value *= 2; // сокращённое выражение с использованием операции присваивания - умножения cout << "value *= 2; >> " << value << endl; value /= 8; // сокращённое выражение с использованием операции присваивания - деления cout << "value /= 8; >> " << value << endl; system("pause"); return 0; }
Для начала в строке 9 была объявлена переменная value
, и инициализирована значением 256. В строках 11, 13, 15, 17, прописаны операции присваивания – сложения, вычитания, умножения и деления соответственно. После выполнения каждой операции присваивания оператор cout
печатает результат. Результат работы программы (см. Рисунок 1).
value = 256 value += 256; >> 512 value -= 256; >> 256 value *= 2; >> 512 value /= 8; >> 64 Для продолжения нажмите любую клавишу . . .
Рисунок 1 – Операции присваивания в С++
На рисунке 1 наглядно показаны примеры выполнения операций присваивания, а также показан результат выполнения соответствующей операции присваивания.
Комментарии
хамза кондрошков
hays_boy
а для чего нужно присвоение
PayL
Например, если ты не собираешься возвращаться к предыдущей переменной, и тебя интересует только конечный результат и дальнейшие операции с ним. При всём этом в твоей проге не нужно будет объявлять слишком много переменных, а всего одну как в рассмотренном примере.
Юльченок Юльченок
угу, по хорошему после каждого вывода надо переменной возвращать значение.
PayL
А по мне, статью переделывать не нужно, всё как надо написано.
Если-бы пришлось возвращать значение после каждой операции, то, я бы прочитав статью, не узнал бы что можно, не возвращая значения, дальше взаимодествовать с уже присвоенной новой переменной, что как раз отражает (на мой взгляд) смысл операции присвоения.
Но по вашему тоже можно, получилось бы более громоздко, и то, что описывалось выше, пришлось бы объяснять отдельно, что было бы лишне.
NaikoN
У Вас ошибка тут «
value -= 256;
// сокращённое выражение с использованием операции присваивания - вычитания
cout <<
"value -= 256; >> "
<< value << endl;
»
У Вас при выводе value=256, а должно равняться 0(нулю), т.к. запись value -= 256;можно расписать как value =value- 256; и получится 256-256=0. Исправьте пожалуйста.
NaikoN
Хоть нет, все правильно, т.к. value=512.