Операции присваивания в С++

Для сокращённой записи выражений в языке программирования С++ есть специальные операции, которые называются операциями присваивания. Рассмотрим фрагмент кода, с использованием операции присваивания.

int value = 256;
value = value + 256; // обычное выражение с использованием двух операций:  = и +
value += 256; // сокращённое эквивалентное выражение с использованием операции присваивания

В строке 2 переменной value присваивается значение 512, полученное в результате суммы значения содержащегося в переменной value с числом 256. В строке 3 выражение выполняет аналогичную операцию, что и в строке 2, но выражение записано в упрощённом виде. В этом выражении присутствует операция присваивания со знаком плюс +=. Таким образом, операция += суммирует значение переменной value co значением, которое находится правее:  256,  и присваивает результат суммы этой же переменной. Как видно из примера оператор в строке 3 короче оператора в строке 2, хоть и выполняет аналогичную операцию. Так что, если некоторую переменную нужно изменить, то рекомендуется использовать операции присваивания.

В С++ существует  пять операций присваивания, не считая основную операцию присваивания: =.

  1. += операция присваивания-сложения;
  2. -= операция присваивания-вычитания;
  3. *= операция присваивания-умножения;
  4. /= операция присваивания-деления;
  5. %= операция присваивания-остатка от деления;

Договоримся называть операции присваивания через дефис,  чтобы было понятно о какой именно операции идёт речь. В таблице 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).

CppStudio.com
value = 256
value += 256; >> 512
value -= 256; >> 256
value *= 2;   >> 512
value /= 8;   >> 64
Для продолжения нажмите любую клавишу . . .

Рисунок 1 – Операции присваивания в С++

На рисунке 1 наглядно показаны примеры выполнения операций присваивания, а также показан результат выполнения соответствующей операции присваивания.

Автор: admin
Дата: 25.08.2012
Поделиться:

Комментарии

  1. хамза кондрошков

    #include <iostream>
    using namespace std;
    
    int main()
    {
        int a ;
        int value = a;
        cout << "BEDITE 1 HCISLO" << endl;
        cin >> a;
        value += 1;
        cout << "value /= 9;   >> " << value << endl;
        return 0;
    }
    я ввожу 9 и получаю -1 почему -1 помогите
  2. hays_boy

    а для чего нужно присвоение

    • PayL

      Например, если ты не собираешься возвращаться к предыдущей переменной, и тебя интересует только конечный результат и дальнейшие операции с ним. При всём этом в твоей проге не нужно будет объявлять слишком много переменных, а всего одну как в рассмотренном примере.

  3. Юльченок Юльченок

    угу, по хорошему после каждого вывода надо переменной возвращать значение.

     

    • PayL

      А по мне, статью переделывать не нужно, всё как надо написано.
      Если-бы пришлось возвращать значение после каждой операции, то, я бы прочитав статью, не узнал бы что можно, не возвращая значения, дальше взаимодествовать с уже присвоенной новой переменной, что как раз отражает (на мой взгляд) смысл операции присвоения.

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

      #include <iostream>
      
      using namespace std;
      
      int main()
      {
          int value, a1 = 256;
          value = a1; // присвоение переменной value значение 256
          cout << "value = " << value << endl;
          value += 256;
          cout << "value += 256; >> " << value << endl;
          value = a1; // возврат value к значению 256
          value -= 256;
          cout << "value -= 256; >> " << value << endl;
          value = a1; // возврат value к значению 256
          value *= 2;
          cout << "value *= 2 >> " << value << endl;
          value = a1; // возврат value к значению 256
          value /= 8;
          cout << "value /= 8 >> " << value << endl;
          cin.get();
          return 0;
      }
  4. NaikoN

    У Вас ошибка тут «value -= 256; // сокращённое выражение с использованием операции присваивания - вычитания
        cout << "value -= 256; >> " << value << endl;
    »

    У Вас при выводе value=256, а должно равняться 0(нулю), т.к. запись value -= 256;можно расписать как value =value- 256; и получится 256-256=0. Исправьте пожалуйста.

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.