русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Операции присваивания


Дата добавления: 2015-01-08; просмотров: 650; Нарушение авторских прав


К операциям присваивания относятся =, +=, –=, *= и /=, а также префиксные и постфиксные операции ++ и ––.

Операция присваивания обозначается символом '='. Простейший вид операции присвоения:

v = e;

здесь v – любое выражение, которое может принимать значение,

e – произвольное выражение.

Операция присвоения выполняется справа налево, т.е. сначала вычисляется значение выражения e, а затем это значение присваивается левому операнду v. Левый операнд в операции присваивания должен быть так называемым адресным выражением (lvalue – выражение, допустимое слева). Примером адресного, или именующего, выражения является имя переменной.

Например, не являются адресными выражения a+b, 45, sqrt(4). Адресным выражением никогда не являются константы.

Т.к. присваивание является операцией, то она возвращает значение, которым является значение, присвоенное в левый операнд. Отсюда следует, что возможна, например, такая запись:

a = b = c = d = e + 2;

Здесь сначала вычисляется самое правое выражение, т.е. e+2. Результат сложения присваивается в d. Эта операция присваивания возвращает присвоенное значение, которое «переходит дальше», т.е. присваивается в c(а потом в b и a).

Если тип правого операнда не совпадает с типом левого, то значение справа преобразуется к типу левого операнда (если это возможно). При этом может произойти потеря значения, например:

int i;

char ch;

short sh;
i = 3.14;

ch = 777;

sh = i;

Здесь i получает значение 3, т.к. преобразование вещественного числа в целое означает отбрасывание дробной части. Значение 777 слишком велико, чтобы быть представленным как char, поэтому значение ch будет зависеть от способа, которым конкретная реализация производит преобразование из большего в меньший целый тип.

В последней строке примера тип int(4 байта) преобразуется в тип short (2 байта). При этом старшие байты, которые не могут быть сохранены в целевом типе, просто отбрасываются. В данном случае в i находится значение 3, которое занимает только самый младший байт, поэтому потери данных не произойдет. Но в общем случае такие присваивания некорректны и опасны.



Существует так называемая комбинированная операция присваивания вида:

a X= b,

здесь X – знак одной из бинарных операций: + – * / % >> << & | ^ && ||.

Эти операции являются укороченной формой записи операции присваивания.

Запись a X= b аналогична a = a X b.

То есть:

а += b означает а = а + b.

а –= b означает а = а – b.

и так далее.

Преимущества комбинированных операций присваивания заключаются в том, что они компактнее традиционных присваиваний и компилятор генерирует для них более эффективный машинный код.



<== предыдущая лекция | следующая лекция ==>
Логические операции | Побитовые операции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.08 сек.