1. Операции присваивания
В качестве левого операнда в операциях присваивания может использоваться только переменная.
= += - = *= /= %= &= ^= |= <<= >>= .
= - присваивает левому операнду значение выражения правой части;
Остальные операции присваивают левому операнду результат выполнения операции, указанной слева от операции равно, левого операнда и правого.
2. В С++ присваивание относится к операциям и используется для формирования бинарных выражений. Поэтому в С++ отсутствует отдельный оператор присваивания.
Операции присваивания имеют низший приоритет при выполнении программы (ниже только запятая).
3.
Тип выражения можно изменить на другой тип с помощью приведения типа значений. Тип выражения и задаваемый тип должны оба иметь перечислимый тип или тип указателей. Для перечислимых типов результирующее значение получается путем преобразования выражения (и возможной проверки на нахождение в допустимых границах). Преобразование может привести к усечению или увеличению размера исходного значения в том случае, если вновь определяемый тип отличается от типа выражения. В том случае, когда значение расширяется, его знак всегда сохраняется. Таким образом, значение является расширяемым по знаку.
Синтаксис приведения типа значений почти совпадает с синтаксисом приведения типа переменных. Однако при приведении типа значений операции производятся со значениями, а не с переменными и, таким образом, могут не участвовать в ссылках на переменные. То есть за приведением типа значения не обязательно следуют квалификаторы. В частности, приведение типа значений не должно встречаться в левой части оператора присваивания.
Приведение типа — преобразование значения переменной одного типа в значение другого типа.
Выделяют явное инеявное приведения типов.
• При явном приведении указывается тип переменной, к которому необходимо преобразовать исходную переменную.
• При неявном приведении преобразование происходит автоматически, по правилам, заложенным в данном языке
программирования.
Вычисление значений выражений в операторах C++ обеспечивается выполнением операций и вызовом функций. Операции используют
операнды, функции требуют параметров. Операнды и параметры характеризуются типом. В C++ не существует операций, которые,
например, обеспечивали бы сложение или умножение операндов различных типов. Выражения вызова функций также требуют
соответствия типа параметров типу параметров определения и прототипа.
Однако не всегда в программе удаётся легко согласовать типы операндов и параметров. И здесь проблем, связанных с согласованием типов
операндов и параметров транслятор берёт на себя. Фактически это означает введение ещё одной системы правил, которая называется
правилами стандартного преобразования типов.
В общем случае, при определении значения выражения могут возникать следующие ситуации:
1.Присвоение "большему типу" значения "меньшего типа". Безопасное присвоение, гарантирует сохранение значения.
unsigned int UnsignedIntVal; unsigned char UnsignedCharVal; UnsignedIntVal = UnsignedCharVal;
2.Присвоение "меньшему типу" значения "большего типа". Потенциально опасное присвоение, грозит потерей информации.
int IntVal; char CharVal; CharVal = IntVal;
3.Преобразование значения из "меньшего типа" в "больший тип". Называется расширением типа.
(unsigned int)UnsignedCharVal;
4.Преобразование значения из "большего типа" в "меньший тип". Называется сужением типа. Является опасным преобразованием.
(char)IntVal;
Корректное выполнение действий со значениями различных типов в безопасных случаях и в ряде опасных случаев обеспечивается
благодаря реализованной в C++ системе преобразования типов.
При трансляции выражений с различными типами операндов транслятор использует механизмы неявных преобразований, которые
основываются на следующих правилах стандартных преобразований:
Присваивание значения объекту преобразует это значение к типу объекта.
s(u)char->s(u)short->s(u)int->s(u)long float->double->long double
9.
1.
Структура программы:
<Команды препроцессора>
[<Объявление типов, переменных и констант>]
[<Объявления (прототипы) функций>]
<Описание функции main()>
[<Описания других функций>]
Описание функции:
<Тип результата или void> <Имя функции> ([<Список параметров>])
{[ < Объявление локальных переменных и констант >]
<Операторы>
}
Пример программы С++:

