Оператор присваивания обозначается одиночным знаком равенства =. Его общая форма:
переменная = выражение;
Здесь переменная принимает значение используемого выражения. Оператор присваивания имеет любопытное свойство: он позволяет создавать цепочку присваиваний. Рассмотрим, например, такой фрагмент:
int х, у, z ;
х = у = z = 100; // присвоить х, у, z значение 100
В этом фрагменте переменные х, у и zполучают значение 100 в одном предложении. Такое присваивание допустимо, так как оператор = выдает значение выражения, стоящего справа от него. Значение выражения z = 100 есть 100, и оно присваивается переменной у, а затем, в свою очередь, переменной х. С помощью “цепочки присваиваний" легко придать группе переменных одно и то же значение.
В С++ предусмотрены специальные операторы составных присваиваний, которые упрощают написание некоторых предложений присваивания. Приведенное ниже предложение присваивания
х = х + 10;
может быть записано с использованием составного присваивания таким образом:
x +=10;
Операторная пара += указывают компилятору, что переменной х следует присвоить значение х плюс 10. Вот другой пример. Предложение
x = x – 100;
равносильно следующему:
x -= 100;
Оба предложения присваивают переменной х значение х минус 100.
Для большинства двухместных операторов (т. е. операторов, требующих двух операндов) в С++ предусмотрена возможность составного присваивания. Таким образом, выражение вида
переменная = переменная оператор выражение;
может быть преобразовано в такую сжатую форму:
переменная оператор = выражение;
Из-за того, что предложения составного присваивания короче своих развернутых эквивалентов, операторы составного присваивания иногда называют операторами краткого присваивания.
Операторы составного присваивания обладают двумя достоинствами. Во-первых, они более компактны по сравнению со своими "полными'"' эквивалентами. Во-вторых, они могут порождать более эффективный выполнимый код (потому что при их использовании операнд оценивается лишь один раз). По этим причинам операторы составного присваивания широко используются в профессиональном программировании на С++.
Операторы, переменные и литералы используются в качестве компонентов выражений. Возможно, вы уже представляете себе общую форму выражения из опыта программирования или из алгебры. Однако некоторые особенности выражений мы все же обсудим.