Статьи

Учебные материалы по языку C++ — от основ до продвинутых тем

Структура программы

Страница 4 из 43 · 2026-10-25 · 5 мин чтения

Из чего состоит программа

Программа на C++ — это исходный код, в котором описаны действия, выполняемые компьютером. Код состоит из нескольких элементов: директив препроцессора, объявлений, функций и инструкций.

Рассмотрим простую программу:

#include <iostream>int main() {    std::cout << "Привет, мир!\n";    return 0;}

Здесь используются три важных элемента:

  • #include <iostream> подключает средства стандартного ввода и вывода.
  • int main() объявляет главную функцию программы — выполнение начинается с неё.
  • std::cout выводит текст в консоль.

При запуске программа напечатает Привет, мир!, а затем завершится.

Инструкции

Инструкция (statement) — это команда языка C++, которая выполняет определённое действие. Большинство простых инструкций заканчивается точкой с запятой ;.

Например:

int score = 100;score += 25;std::cout << score << '\n';

В этом примере три инструкции:

  1. Создаётся целочисленная переменная score со значением 100.
  2. К её значению прибавляется 25.
  3. Результат выводится в консоль.

Вывод программы:

125

Точка с запятой сообщает компилятору, что инструкция завершена. Если пропустить её там, где она требуется, программа может не скомпилироваться.

Блоки кода

Блок кода — это последовательность объявлений и инструкций, заключённая в фигурные скобки { и }.

{    int first = 10;    int second = 20;    std::cout << first + second << '\n';}

Блок группирует несколько операций. Он может использоваться внутри функций, условий, циклов и других конструкций языка.

Фигурные скобки также определяют область видимости локальных переменных. Например, переменная, объявленная внутри блока, обычно доступна только до его закрывающей скобки:

{    int temporary = 42;    std::cout << temporary << '\n';}// Здесь temporary уже недоступна.

Попытка обратиться к temporary за пределами блока приведёт к ошибке компиляции.

Директивы препроцессора

Перед компиляцией исходный код обрабатывается препроцессором. Он выполняет специальные команды, которые называются директивами препроцессора.

Директивы начинаются со знака #. Например:

#include <iostream>#include <string>

Директива #include подключает содержимое указанного заголовка, чтобы программа могла использовать соответствующие объявления.

В данном случае:

  • <iostream> предоставляет средства ввода и вывода, включая std::cout и std::cin.
  • <string> предоставляет тип std::string для работы со строками.

Пример использования:

#include <iostream>#include <string>int main() {    std::string name = "Алексей";    std::cout << "Привет, " << name << "!\n";    return 0;}

Препроцессорные директивы не являются обычными инструкциями C++: после них не ставится точка с запятой. Директива обычно заканчивается в конце строки.

Например, запись ниже некорректна:

#include <iostream>;

Правильный вариант:

#include <iostream>

Функция main()

Функция main() — точка входа в обычную исполняемую программу на C++. Именно с неё начинается выполнение программы.

Минимальный пример:

int main() {    return 0;}

Разберём его составляющие:

  • int — тип значения, которое возвращает функция.
  • main — имя главной функции.
  • () — круглые скобки, в которых указываются параметры функции.
  • {} — тело функции, содержащее её код.
  • return 0; — завершает функцию и сообщает операционной системе об успешном завершении программы.

Если выполнение доходит до закрывающей скобки функции main, это эквивалентно возврату 0.

Поэтому можно написать и так:

int main() {    // Код программы}

Для обычной консольной программы часто используют форму int main() без параметров. Существует и другая стандартная форма с аргументами командной строки:

int main(int argc, char* argv[]) {    return 0;}

Комментарии

Комментарии нужны для пояснения кода. Компилятор не выполняет текст комментариев как инструкции программы.

В C++ есть два основных вида комментариев.

Однострочный комментарий начинается с // и продолжается до конца строки:

// Создаём переменную с количеством очков.int score = 250;

Многострочный комментарий начинается с /* и заканчивается на */:

/*    Рассчитываем итоговое количество очков.    Позже результат будет выведен в консоль.*/int total = 250 + 50;

Комментарии помогают объяснять назначение кода, но не должны заменять понятные имена переменных и функций.

Как элементы объединяются в программу

Посмотрим на пример, в котором используются директива препроцессора, функция, переменные, инструкции и комментарий:

#include <iostream>#include <string>int main() {    // Данные пользователя.    std::string name = "Мир";    int year = 2026;    // Выводим результат.    std::cout << "Привет, " << name << "!\n";    std::cout << "Год: " << year << '\n';    return 0;}

Результат:

Привет, Мир!Год: 2026

Последовательность работы программы выглядит следующим образом:

  1. Препроцессор обрабатывает директивы #include.
  2. Компилятор проверяет исходный код и преобразует его в машинный код.
  3. При запуске выполнение начинается с main().
  4. Инструкции выполняются последовательно, если управление не изменяется условиями, циклами или вызовами функций.
  5. После завершения main() программа заканчивает работу.

Частые ошибки

1. Пропущена точка с запятой

int value = 10std::cout << value << '\n';

После объявления переменной должна стоять ;:

int value = 10;std::cout << value << '\n';

2. Не подключён необходимый заголовок

int main() {    std::cout << "Тест\n";}

Для использования std::cout нужно подключить <iostream>:

#include <iostream>int main() {    std::cout << "Тест\n";}

3. Нарушен баланс фигурных скобок

int main() {    std::cout << "Начало\n";

У функции отсутствует закрывающая скобка. Корректный вариант:

int main() {    std::cout << "Начало\n";    return 0;}

4. Переменная используется вне своей области видимости

int main() {    {        int value = 10;    }    std::cout << value << '\n';}

Переменная value существует только внутри вложенного блока. Чтобы использовать её после блока, объяви переменную во внешней области:

int main() {    int value = 10;    {        value += 5;    }    std::cout << value << '\n';}

Итог

Основные элементы структуры программы на C++:

  • Директивы препроцессора — например, #include, подключающие необходимые заголовки.
  • Функция main() — точка входа в исполняемую программу.
  • Инструкции — отдельные команды, многие из которых заканчиваются ;.
  • Блоки кода — группы объявлений и инструкций в фигурных скобках.
  • Комментарии — пояснения для разработчика, которые не выполняются программой.

Понимание этих элементов позволит легче читать чужой код и переходить к изучению переменных, типов данных, условий, циклов и функций.