Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Правила приведения типов операндов

Ii) Указатели на элементы массива | V) Массивы и функции | Объединения (union). | Как это работает | Проверка – Передача по значению |


Читайте также:
  1. I. ОБЩИЕ ПРАВИЛА, ПРИМЕНЯЕМЫЕ К МОТОЦИКЛАМ УЧАСТНИКОВ СОРЕВНОВАНИЯ.
  2. I. ПРАВИЛА ОФОРМЛЕНИЯ ОТЧЕТА ПО ПРАКТИКЕ
  3. I. Правила проведения групповых занятий
  4. II. Правила приема лабораторных работ по курсу “АЯП”.
  5. II. Правила создания НКП и проведения учредительных конференций (общих собраний) НКП
  6. III. ПРАВИЛА ПОДАЧИ ЗАЯВОК
  7. III. ПРАВИЛА ПОДАЧИ ЗАЯВОК

Содержание. Типы и приведение типов. Правила приведения типов операндов. Приведение типов в операторах присваивания. Явное приведение типов (static_cast, reinterpret_cast, const_cast, dynamic_cast). Приведение типов в старом стиле. Массивы и структуры. Многомерные массивы. Указатели на массивы, массивы и функции. Строки. Структуры. Битовые поля. Объединения. Понимание функций. Использование функций. Механизмы передачи параметров в функцию. Указатели в качестве аргументов ф-ии. Передача в функцию многомерных массивов. Использование ссылок.

Типы переменных и Приведение типов

Вычисления в C++ могут выполняться только, если значения операндов имеют одинаковый тип. Когда мы пишем выражение, содержащее переменные или константы различных типов, для каждой операции, компилятор должен преобразовать тип одного из операндов так, чтобы он соответствовал типу другого. Этот процесс называется приведением типов. Например, если мы складываем значение типа double с целым значением, то последнее сначала преобразуется в тип double, а затем только выполняется сложение. Конечно, переменная, которая содержит преобразуемое значение, сама не модифицируется. Компилятор сохранит преобразованное значение во временной памяти, которая освободится после завершения вычислений.

Существуют правила выбора операндов для преобразования при любых операциях. Любое выражение перед вычислением может быть, при необходимости, представлено в виде последовательности операций между двумя операндами. Таким образом, правила приведения типов достаточно определить в применении только к парам операндов разного типа. Поэтому, для любой пары операндов разного типа, проверяются следующие правила в том порядке, в котором они написаны. Если какое-либо правило применимо, то оно и используется.

Правила приведения типов операндов

  1. Если любой из двух операндов имеет тип long double, то другой преобразуется к long double.
  2. Если любой из двух операндов имеет тип double, другой преобразуется к double.
  3. Если любой из двух операндов типа float, другой преобразуется к float.
  4. Любой из операндов типа char, signed char, unsigned char, short, или unsigned short преобразуется к типу int.
  5. Тип перечисление (enum) сначала преобразуется к int, unsigned int, long, или unsigned long,и значения подгоняются к диапазону перечисления.
  6. Если любой из двух операндов имеет тип unsigned long, другой преобразуется к unsigned long.
  7. Если один из операндов имеет тип long а другой – тип unsigned int, тогда оба преобразуются к типу unsigned long.
  8. Если любой из двух операндов типа long, то другой преобразуется к типу long.

//*************************

Разобрать в качестве примера:

double value = 31.0;int count = 16;float many = 2.0f;char num = 4;

Арифметическое выражение в операторе присваивания:

value = (value - count)*(count - num)/many + num/many;

Конечный результат 92.0 хранится в value как double.

//*******************


Дата добавления: 2015-11-16; просмотров: 68 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Кратко: for, while, do-while циклы и простые примеры| Явное приведение типа

mybiblioteka.su - 2015-2024 год. (0.006 сек.)