Операции присваивания (=, +=, -=, *= и т. д.) задают новое значение переменной2. Эти операции могут использоваться в программе как законченные операторы.
Формат операции простого присваивания (=): переменная = выражение
Механизм выполнения операции присваивания такой: вычисляется выражение и его результат заносится в память по адресу, который определяется именем переменной, находящейся слева от знака операции. То, что ранее хранилось в этой области памяти, естественно, теряется. Схематично это полезно представить себе так:
Переменная <- Выражение
Напомню, что константа и переменная являются частными случаями выражения.
Примеры операторов присваивания:
а = b + c / 2;
b = а;
а = b;
х = 1;
х = х + 0.5;
Для правого операнда операции присваивания должно существовать неявное преобразование к типу левого операнда. Например, выражение целого типа можно присвоить вещественной переменной, потому что целые числа являются подмножеством вещественных, и информация при таком присваивании не теряется:
|
|
вещественная_переменная = целое_выражение;
Правила преобразований перечислены в разделе «Преобразования встроенных арифметических типов-значений» (см. с. 45).
Результатом операции присваивания является значение, записанное в левый операнд. Тип результата совпадает с типом левого операнда.
В сложных операциях присваивания (+=, *=, /= и т. и.) при вычислении выражения, стоящего в правой части, используется значение из левой части. Например, при сложении с присваиванием ко второму операнду прибавляется первый, и результат записывается в первый операнд, то есть выражение а += b является более компактной записью выражения а = а + b.
Результатом операции сложного присваивания является значение, записанное в левый операнд.