В первой строке программы подключается (include) заголовочный файл с объявлениями стандартных функций ввода-вывода. Если имя заголовочного файла написано в ``<>``, то поиск этого файла выполняется только в каталогах, указанных в настройках компилятора. Если имя файла написано в ``""``, то поиск сначала ведется в текущем каталоге, а затем в каталогах, указанных в настройках компилятора.
Вторая строка содержит заголовок функции ``main``, возвращающей целое значение. Выполнение любой программы на языке С начинается с функции ``main``, которая вызывает остальные функции программы.
Следующие строки содержат тело функции в ``{}``. В этой программе происходит вызов стандартной функции ``printf``, которой в качестве аргумента передается строка с выводимым текстом. Последний символ строки имеет специальное обозначение ``\n`` -- это переход на новую строку.
Рассмотрим более сложный пример программы, в котором происходит ввод двух чисел и вывод их суммы.
```run-c #
#include <stdio.h>
int main()
{ int a,b;
scanf("%d%d",&a,&b);
printf("Сумма равна %d\n",a+b);
return 0;
}
```
Первые две строки программы не отличаются от предыдущего примера. В третьей строке определяются две переменные ``a`` и ``b`` целого типа. В четвертой строке происходит ввод значений этих переменных с клавиатуры. Первый аргумент функции ``scanf`` является строкой, содержащей спецификаторы формата. Спецификатор формата ``%d`` используется для ввода и вывода целых значений, количество спецификаторов формата в строке определяет количество вводимых значений, для каждого спецификатора должен быть указан дополнительный аргумент в форме ``&``*имя_переменной*.
В пятой строке выводится значение суммы, первый аргумент является строкой, содержащей выводимый текст и спецификаторы формата там, где должны быть выведены значения соответствующих дополнительных аргументов функции ``printf`` (в данном случае ``a+b``).
В шестой строке выполнение функции ``main`` завершается с кодом 0, т.е. успешно. Эту строку в функции ``main`` можно не писать, как в первом примере. Для информирования об ошибке нужно вернуть ненулевое значение -- код ошибки.