Шаг 12.
Арифметические операции: инкремент (++) и декремент (--)

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

    В языке C++ существуют две специальные арифметические операции: инкремента (++) и декремента (--).

    Совокупность символов "++" или "--" записывается после имени переменной или перед ним. Если знак стоит перед именем (в этом случае говорят о префиксной форме операции), то сначала выполняется увеличение (уменьшение) значения переменной, а лишь затем полученный результат используется в выражении. Если же знак стоит после имени (постфиксная форма операции), то в выражении используется "старое" значение переменной, которое затем изменяется.

    Пример 1.

   #include<iostream.h>
   main ()
   {
      int a=1,b=2,c=a---b;
      /* ------- */
      cout<<"Результат: "<<a<<" "<<b<<" "<<c<<endl;
      c = a---(--b);
      cout<<"Результат: "<<a<<" "<<b<<" "<<c<<endl;
   }
Текст этой программы можно взять здесь.

    Результат работы программы:

   Результат: 0 2 -1
   Результат: -1 1 -1

    Операции инкремента и декремента можно применять только к переменным: выражения типа x=(i+j)++ являются незаконными!

   


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

    Пример 2.

   #include<iostream.h>
   #include<stdio.h>
   main()
   {
     int a,b,c,v,k;
     cout<<"Задайте целое число: ";
     cin>>v;
     k=v;
     cout<<"          До    Во время После"<<endl;
     v=k;a=v;b=v++;c=v;printf("v++%8d%8d%8d\n",a,b,c);
     v=k;a=v;b=v--;c=v;printf("v--%8d%8d%8d\n",a,b,c);
     v=k;a=v;b=++v;c=v;printf("++v%8d%8d%8d\n",a,b,c);
     v=k;a=v;b=--v;c=v;printf("--v%8d%8d%8d\n",a,b,c);
}
Текст этой программы можно взять здесь.

    Результат работы программы:

        До   Во время  После
v++      8      8        9
v--      8      8        7
++v      8      9        9
--v      8      7        7

    Проанализируйте полученные результаты. Колонка До отображает значение переменной v перед вычислением выражения. Колонка Во время показывает значение выражения (то, чему была бы равна переменная k, если бы, например, был выполнен оператор k=v++;). Колонка После показывает итоговое значение переменной v после вычисления выражения.

    Следующий шаг будет посвящен операциям присваивания и отношения.


Предыдущий шаг Содержание Следующий шаг