На этом шаге мы познакомимся с операциями увеличения и уменьшения на
единицу.
В языке 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)++ являются незаконными!
Пример 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 после вычисления выражения.
Следующий шаг будет посвящен операциям присваивания и отношения.