1. Введение в C++: синтаксис, типы данных и управляющие конструкции
Введение в C++: синтаксис, типы данных и управляющие конструкции
Добро пожаловать в курс «Основы и тонкости программирования на C++». Это первая статья, с которой начнется ваше погружение в один из самых мощных и востребованных языков программирования в мире. C++ используется везде: от создания операционных систем и драйверов до разработки высокопроизводительных игр и финансовых систем.
В этой статье мы разберем фундамент языка: как выглядит программа, где хранятся данные и как управлять ходом выполнения кода.
Что такое C++ и как он работает?
C++ — это компилируемый, статически типизированный язык общего назначения. Он был разработан Бьерном Страуструпом в начале 1980-х годов как расширение языка C. Главная особенность C++ — это сочетание низкоуровневого доступа к памяти (как в C) и высокоуровневых абстракций (классы, шаблоны).
!Процесс превращения исходного кода в исполняемую программу
Когда вы пишете код на C++, компьютер не понимает его напрямую. Процесс запуска выглядит так:
.cpp.Структура минимальной программы
Давайте рассмотрим классический пример «Hello, World!» и разберем его построчно.
Разбор кода
* #include <iostream>: Это директива препроцессора. Она говорит компилятору подключить библиотеку ввода-вывода (iostream — Input/Output Stream). Без неё мы не сможем выводить текст на экран.
* int main() { ... }: Это главная функция. Любая программа на C++ начинает свое выполнение именно с функции main. Фигурные скобки {} обозначают начало и конец блока кода.
* std::cout: Объект, отвечающий за вывод данных в консоль. Приставка std:: означает, что cout находится в стандартном пространстве имен (standard namespace).
* <<: Оператор вставки в поток. Он направляет строку "Hello, World!" в cout.
* return 0;: Завершение функции. Возврат значения 0 традиционно сообщает операционной системе, что программа выполнилась успешно, без ошибок.
> В C++ точка с запятой ; является обязательным разделителем команд. Пропуск этого символа — самая частая ошибка новичков.
Переменные и типы данных
Программы должны обрабатывать данные. Для хранения данных в оперативной памяти используются переменные. C++ — язык со строгой статической типизацией. Это значит, что вы должны явно указать тип переменной при её создании, и этот тип не может измениться в процессе работы.
!Визуализация хранения переменных разных типов в памяти
Основные примитивные типы
| Тип данных | Описание | Пример значения | Размер (обычно) |
| :--- | :--- | :--- | :--- |
| int | Целое число | 42, -10 | 4 байта |
| double | Число с плавающей точкой (дробное) | 3.14, -0.01 | 8 байт |
| char | Одиночный символ | 'A', 'z', '#' | 1 байт |
| bool | Логическое значение | true, false | 1 байт |
Объявление и инициализация
Диапазоны значений
Поскольку память компьютера ограничена, каждый тип данных имеет свой диапазон значений. Например, количество уникальных значений, которые может хранить переменная, зависит от количества бит, выделенных под неё.
Формула для расчета количества уникальных значений выглядит так:
где — количество уникальных комбинаций (значений), а — количество бит в типе данных.
Например, для беззнакового типа unsigned char (8 бит) максимальное значение рассчитывается как:
где — максимальное целое число, — основание двоичной системы, — количество бит, а вычитается, так как отсчет начинается с нуля.
Ввод и вывод данных
Мы уже видели std::cout для вывода. Для ввода данных с клавиатуры используется std::cin.
Обратите внимание на направление «стрелочек» (операторов сдвига):
cout << (данные уходят из программы в* консоль).
cin >> (данные приходят из консоли в* переменную).
Управляющие конструкции
Код не всегда выполняется линейно сверху вниз. Иногда нужно принимать решения или повторять действия.
Условный оператор if-else
Позволяет выполнить блок кода только если условие истинно.
Основные операторы сравнения:
* == (равно)
* != (не равно)
* > (больше), < (меньше)
* >= (больше или равно), <= (меньше или равно)
Циклы
Циклы используются для повторения кода.
#### Цикл while
Выполняется, пока условие истинно. Проверка происходит до итерации.
#### Цикл for
Самый популярный цикл, когда известно количество повторений. Он состоит из трех частей: инициализация, условие, обновление.
!Логическая схема работы цикла for
Арифметика и операции
C++ поддерживает стандартные математические операции:
* + (сложение)
* - (вычитание)
(умножение)
* / (деление)
* % (остаток от деления — только для целых чисел)
Важный нюанс с делением: если оба операнда целые, результат тоже будет целым (дробная часть отбрасывается).
Чтобы получить дробный результат, хотя бы одно число должно быть вещественным:
Заключение
Сегодня мы разобрали базовый скелет программы на C++. Вы узнали, как объявлять переменные, работать с вводом-выводом и управлять потоком выполнения с помощью условий и циклов. Это те кирпичики, из которых строятся даже самые сложные системы.
В следующей статье мы углубимся в тему функций и областей видимости, чтобы научиться структурировать код более эффективно.
Для более глубокого изучения стандартных функций рекомендую обращаться к документации cppreference.