Явное и неявное преобразование типов данных C++

Начало Представим себе следующий оператор присваивания:

В результате ival получит значение 6. Вот что происходит: мы складываем литералы разных типов – 3.541 типа double и 3 типа int. C++ не может непосредственно сложить подобные операнды, сначала ему нужно привести их к одному типу. Для этого существуют правила преобразования арифметических типов. Общий принцип таков: перейти от операнда меньшего типа к большему, чтобы не потерять точность…

Приоритеты

Приоритеты операций задают последовательность вычислений в сложном выражении. Например, какое значение получит ival?

Если вычислять операции слева направо, получится 20. Среди других возможных результатов будут 9, 14 и 36. Правильный ответ: 14. В С++ умножение и деление имеют более высокий приоритет, чем сложение, поэтому они будут вычислены раньше. Их собственные приоритеты равны, поэтому умножение и деление будут вычисляться слева направо. Таким образом, порядок вычисления…

Побитовые операторы

Побитовые операции рассматривают операнды как упорядоченные наборы битов, каждый бит может иметь одно из двух значений – 0 или 1. Побитовые операторы Символ операции Значение Использование ~ Побитовое НЕ ~expr << Сдвиг влево expr1<<expr2 >> Сдвиг вправо expr1>>expr2 & Побитовое И expr1 & expr2 ^ Побитовое Исключающее ИЛИ expr1 ^ expr2 | Побитовое ИЛИ expr1 | expr2 &= Побитовое И с присваиванием expr1 &= expr2…

Оператор «запятая»

Одно выражение может состоять из набора подвыражений, разделенных запятыми; такие подвыражения вычисляются слева направо. Конечным результатом будет результат самого правого из них. В следующем примере каждое из подвыражений условного оператора представляет собой список. Результатом первого подвыражения условного оператора является ix, второго – 0.

Операторы new и delete

Каждая программа во время работы получает определенное количество памяти, которую можно использовать. Такое выделение памяти под объекты во время выполнения называетсядинамическим, а сама память выделяется из хипа (heap).