332 читали · 6 лет назад
Гепатит C- ЧТО ЭТО?
Вирусный гепатит С – тяжелейшее инфекционное заболевание человека, характеризующееся первичным поражение клеток печени. Эта инфекция передаётся через кровь, и поэтому болеют ей, как правило, люди из так называемой группы риска. Но и любой человек не застрахован от этого недуга, так как вирус может попасть в организм в парикмахерской, во время медицинских процедур (переливание крови), в пирсинг или тату-салоне. К тому же можно заразиться во время незащищённого полового акта даже с вполне здоровым человеком, так как вирус может просто циркулировать в крови, не вызывая развития болезни...
8 месяцев назад
Что такое nullptr? Я бы с ходу ответил что-то подобное: `nullptr` в C++ — это ключевое слово, которое используется для обозначения нулевого указателя. Оно было введено в стандарт C++11, чтобы заменить старый стиль использования литерала `NULL` или просто числа `0` для указания на нулевой указатель. А теперь представьте, что вы общаетесь с С-программистом, который знает, что такое указатель и как его занулить. Ваша задача — объяснить, что такое nullptr "под капотом" и чем его устройство отличается от NULL. С NULL всё банально: в зависимости от реализации это может быть либо просто макрос для 0, либо каст 0 к void-указателю. Например: #define NULL 0 или #define NULL ((void *)0) Начнём разбираться Изучение любой непонятной C++ штуки традиционно начинаем с чтения cppreference : Ключевое слово nullptr обозначает литерал указателя. Это prvalue типа std::nullptr_t. Окей, nullptr — это константа времени компиляции, которую можно присвоить только указателю, чтобы занулить его. Но что такое std::nullptr_t? Читаем cppreference далее: std::nullptr_t — это тип литерала нулевого указателя nullptr. Это особый тип, который сам по себе не является типом указателя или указателем на тип элемента. Его значениями являются константы нулевого указателя. Много букв. Так становится намного понятнее: using nullptr_t = decltype(nullptr); Как видите, стандарт явно не описывает внутреннее устройство nullptr, но информация о том, что sizeof(std::nullptr_t) равно sizeof(void*), намекает, что nullptr реализуется на аппаратном уровне как указатель на адрес 0. Вопрос на засыпку: можно ли получить nullptr в результате вычислений? P.S.: Для любителей бескомпромиссного чтива https://eel.is/c++draft/support.types.nullptr