(int)3.5 == 3; //true
Специальные типы для каста int
в указатель:
intptr_t
uintptr_t
Можно кастовать указатель int в указатель на double
В си++ нельзя указатель на void неявно скастовать на другие типы указателей
В си++ можно писать int(3.5)
для однословных типов
Кроме сишного в ++ есть ещё 3(4) каста (сишный разрезанный на 3 куска):
const int *p;
int *q = const_cast<int *>(p);
//может снимать или добавлять const и volatile
4й си++ каст - dynamic_cast
, про касты между наследниками и родителями, тяжелый (полнаценная функция), может закончиться неудачей (вернет nullptr
, если ссылка - иключение), работает через RTTI
За жизнь Rust - язык без стандарта, свой компилятор языка без стандарта создать невозможно, тк то, как работает компилятор разработчика языка и является фактически стандартом. Переменные и Операторы int a, b = 5; // переменная a не инициализируется Инициализуется только переменные те у которых стоит = Локальные переменные без инициализации содержат мусор (рандомное значение), тк под локальные переменные место на стеке выделяется, но ничем не заполняется, может случиться 0, может не 0, из разных запусков - может случиться разное, из разных компиляций (release/debug) может случиться разное. Вообще, ошибки обращения к неиницилизированным переменным - это очень частые ошибки.
Jul 20, 2023За жизнь Сначала будет много про Си, тк Си++ - исходно расширение языка си: изначально он был как предпроцессор, который превращал его в си код, который потом компилировался - это был не отдельный язык, а надстройка над си. Потом C++ разошелся с си, некоторые вещи работают по-другому. Но в общем С++ можно считать надмножеством языка си, многое, что работает в си, работает и в ++. Идея - языка C/C++. Почему важно? - сильно влияет на проиходящие, стиль и т.д. Си относиться к одним из самых старых яп которые живы: старше си только фортран. Фортран создавался как язык для научных вычеслений, напрмер в нём легко работать с матрицами и т.д. А на си удобнее работать с системными функциями. Фортран часто используется в вычеслительных серверах. На нём написано много ПО, по этому яп до сих пор жив. Отметим, что ЯП бывают разные, так, например, Паскаль и вовсе создавался для обучения. -Для чего создавался си? -Системными программистами для себя.
Jul 20, 2023(23.04.2022) Про шаблоны Это не функция! это пример как создать что-либо! допустим есть a.h файл в котором мы реализуем функцию, и ещё b.h, b.cpp и main.cpp. Допустим мы подклюаем a.h в b.h и main.cpp, при линковке возникает ошибка Про структуры в С++ В C++ в структурах можно реализовывать функции (методы)
Sep 18, 2022(19.03.2022) Про размеры Тип для размера массивов или чего либо другого - size_t - модификатор %z (%zu - стандарт C99) ptrdiff_t - для разницы двух указателей (size_t со значком) - модификатор %t (%ti или %td стандарт C99) (Данный тип описан в заголовочном файле stddef.h для языка C и в файле cstddef для языка C++) Обратный цикл для size_t: for(size_t x=N; x--; )
Sep 18, 2022or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up