reinterpret_cast С++ оператор приведения типов

Оператор приведения reinterpret_cast может преобразовывать:

1) Один тип в другой;
2) Указатель одного типа к другому типу;
3) Тип данных к указателю другого типа.

Контроль корректности действий лежит на программисте.


#include <iostream> // cout
using namespace std;

int main(){
    float* pf = new float(3.14f);           // Указатель на число с плавающей точкой и значением 3.14f
    //int* p = pf;                          // Ошибка! Нельзя конвертировать float* в int*
    int* pi = reinterpret_cast<int *>(pf);  // Привели float* в int*
    cout << *pi <<  endl;                   //1078523331 Так как приведение некорректное, в переменной - мусор
}
2023-10-22



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

not оператор С++ альтернативный "Логическое Не" !
not_eq оператор С++ альтернативный "НЕ РАВНО" !=
operator C++ перегрузка операторов в классе
or альтернативное наименование оператора || (Логическое ИЛИ)
or_eq альтернативное наименование оператора |= (Побитовое ИЛИ)
reinterpret_cast С++ оператор приведения типов
sizeof С++ оператор возвращающий размер переменной или типа данных в байтах
static_assert С++, С++ проверка ошибок на этапе компиляции
static_cast С++ оператор приведения типов
xor C++ оператор альтернативный ^ (побитовому исключающему ИЛИ)
xor_eq C++ альтернатива оператору ^= (Исключающее ИЛИ равно)