Hello, World!

1. Простейшая программа на C++

int main()  // Простейшая программа на C++
{

} Code language: JavaScript (javascript)
  1. Данный код определяет функцию только с именем main, без входных параметров и без каких-либо действий внутри.
  2. Открывающая фигурная скобка { обозначает начало тела функции main, закрывающая } — конец тела функции. Все исполняемые строки кода помещаются между скобками {}.
  3. Двойная косая черта // обозначает однострочный комментарий. Все содержимое от // до конца строки предназначено только для чтения человеком, компилятор полностью игнорирует комментарии;
  4. Каждая полноценная программа на C++ обязательно содержит ровно одну глобальную функцию main(), выполнение программы начинается с main
  5. int означает, что функция возвращает целое число. Внутри тела возврат 0 говорит о нормальном завершении программы, возврат ненулевого значения сигнализирует об ошибке.
  6. Возвращаемое значение из пункта 5 считывается системами Unix/Linux, большинство программ под Windows его не используют.

2. Полный пример стандартного вывода Hello World

#include <iostream>

int main()
{
    std::cout << "Hello, World!\n";
}
  • #include <iostream>: Указывает компилятору подключить объявления стандартной библиотеки потоков ввода-вывода. Без этой строки оператор вывода std::cout не будет распознан;

iostream — одна из упомянутых ранее стандартных библиотек, готовый код на C++, встроенный в компилятор. С его помощью выполняются операции ввода и вывода, например вывод текстовой строки в консоль.

  • Оператор вывода <<: записывает содержимое справа в объект вывода std::cout. В данном примере строковый литерал "Hello, World!\n" выводится (не на физический принтер, а на экран) в стандартную консоль (терминал CMD) через std::cout
  • «Hello, World!\n» — строковый литерал: текст в двойных кавычках; управляющий символ \n — перевод строки, после вывода курсор автоматически переходит на следующую строку
  • std::: квалификатор пространства имен, указывает, что cout является компонентом стандартного пространства имен std. Позже мы разберем конструкцию using namespace std;, которая позволяет убрать префикс std:: и использовать просто cout.

Квалификатор пространства имен нужен для избавления от конфликтов одинаковых имен, поэтому к библиотечным компонентам добавляют префикс. Аналогия: если в классе два ученика с одинаковым именем, учитель дает им разметку вроде Джейсон Первый, Джейсон Второй; префикс std выполняет ту же задачу.

Полный пример

В следующем примере определены две дополнительные функции: одна вызывается из main, и она в свою очередь вызывает вторую. Программа вычисляет площадь круга: достаточно задать радиус, чтобы вывести полученное значение площади.

#include <iostream>
using namespace std; // После подключения пространства имен std префикс std:: можно не писать далее

// Вычислить площадь круга
double circle_area(double x)
{
    return 3.14 * x * x;
}

// Вывести площадь круга
void print_circle_area(double r)
{
    cout << "The area of circle with radius " << r << " is " << circle_area(r) << "\n";
}

int main()
{
    print_circle_area(2.0); // Радиус равен 2, вывод площади круга
    return 0;
}

Результат выполнения

The area of circle with radius 2 is 12.56

С помощью cout можно последовательно использовать несколько операторов << для вывода множества фрагментов текста. Если символ \n не указан, весь вывод будет на одной строке. Помимо строковых литералов можно выводить и переменные, например переменную r типа double из примера.

В записи void print_circle_area(double r) скобки (double r) содержат входной параметр. Входной параметр означает, что значение переменной r передается в функцию при вызове извне. При вызове print_circle_area(2.0); в main передается число 2.0, поэтому внутри функции r равно 2.0. Далее cout выводит текст, переменную r, затем вызывает функцию circle_area(r). При этом значение 2.0 из r передается параметру x функции double circle_area(double x), поэтому x тоже равен 2.0 внутри нее. Производится вычисление 3.14 * 2 * 2 = 12.56, результат возвращается через return обратно в точку вызова, логика эквивалентна коду ниже:

cout << "The area of circle with radius " << r << " is " <<  12.56 << "\n";

После завершения вывода закрывающая скобка завершает работу функции print_circle_area, управление возвращается в функцию main.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *