ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Преобразование типов операндов арифметических операцийВ операциях могут участвовать операнды различных типов, в этом случае они преобразуются к общему типу в порядке увеличения их "размера памяти", т.е. объема памяти, необходимого для хранения их значений. Поэтому неявные преобразования всегда идут от "меньших" объектов к "большим". Схема выполнения преобразований операндов арифметических операций: short, char → int → unsigned → long → double float → double Стрелки отмечают преобразования даже однотипных операндов перед выполнением операции, т.е. действуют следующие правила: - значения типов char и shor t всегда преобразуются в int; - если любой из операндов (a или b) имеет тип double, то второй преобразуется в double; - если один из операндов long, то другой преобразуется в long. Внимание! Результатом 1/3 будет «0», чтобы избежать такого рода ошибок необходимо явно изменять тип хотя бы одного операнда, т.е. записывать, например: 1. / 3. Типы char и int могут свободно смешиваться в арифметических выражениях. Каждая переменная типа char автоматически преобразуется в int, что обеспечивает значительную гибкость при проведении определен- ных преобразований символов. При присваивании значение правой части преобразуется к типу левой, который и является типом результата. И здесь необходимо быть внимательным, т.к. при некорректном использовании операций присваивания могут возникнуть неконтролируемые ошибки. Так, при преобразовании int в char старший байт просто отбрасывается. Пусть имеются значения: float x; int i; тогда x=i; и i=x; приводят к преобразованиям, причем float преобразуется в int отбрасыванием дроб- ной части. Тип double преобразуется во float округлением. Длинное целое преобразуется в более короткое целое и char посредством отбрасывания лишних бит более высокого порядка. При передаче данных функциям также происходит преобразование типов: в частности, char становится int, а float - double. Не нашли, что искали? Воспользуйтесь поиском:
|