Синтаксис C и C++ по полочкам: указатели, ссылки, память, типы, шаблоны и современные возможности стандарта. Системный разбор основ языка с примерами — полезно и новичкам, и тем, кто хочет закрыть пробелы.
Указатели на функции и их применение
Введение Указатели могут указывать не только на данные, но и на функции — в этой статье разберём указатели на функции, их синтаксис (один из наиболее визуально сложных в…
Стек и куча: где живут переменные, разница в скорости и времени жизни
Введение Ранее мы упоминали «автоматическое» время жизни локальных переменных и динамическую память — в этой статье соберём эти концепции в единую картину, явно разобрав два основных региона памяти,…
Динамическая память: malloc/free, new/delete, отличия и подводные камни
Введение До этой статьи все примеры использовали переменные с автоматическим временем жизни, размер и количество которых известны на этапе компиляции — динамическая память позволяет выделять память во время…
Перечисления: enum в C и enum class в C++
Введение Перечисления дают именованные, осмысленные альтернативы «магическим числам» — в этой статье разберём enum в его классическом, С-совместимом виде, и более современный, безопасный enum class C++11, устраняющий ряд…
Объединения (union) и битовые поля
Введение Ранее мы разобрали struct, где все поля существуют одновременно, занимая суммарный объём памяти — union представляет принципиально иной подход, где все поля совместно используют ОДНУ И ТУ…
Структуры (struct): объявление, вложенность, выравнивание полей
Введение После базового синтаксиса (блок 1) переходим к организации данных — struct объединяет несколько связанных значений разных типов в единую сущность, и в этой статье разберём объявление структур,…
Строки в C: char*, массивы символов, отличие от std::string
Введение Завершаем первый блок цикла темой строк — в чистом C (и в C++ коде, взаимодействующем с C-API или унаследованным кодом) строки представлены не отдельным типом данных, а…
Указатели: основы, арифметика указателей, указатели на указатели
Введение Уже неоднократно использовали указатели — настало время разобрать их системно, как одну из самых фундаментальных и одновременно потенциально опасных концепций C/C++: что представляет собой указатель, как работает…