Перейти к содержанию
Educora
Начальный15 мин1 / 8

Что такое C? Первая программа

Узнай, как появился язык C и где он применяется, напиши первую программу, скомпилируй её с помощью GCC и выведи текст через printf.

Проверь себя
В этом уроке ты узнаешь
  • Рассказывать об истории C и о том, где он применяется сегодня
  • Компилировать программу на C с помощью gcc и запускать её
  • Понимать смысл строк #include <stdio.h>, int main(void) и return 0;
  • Использовать спецификаторы формата и управляющие последовательности в printf

Твой телефон, стиральная машина, блок управления двигателем автомобиля и домашний роутер — внутри каждого из них работают программы. Удивительно многие из них написаны на языке, которому уже больше пятидесяти лет, — на C. Он быстрый, компактный и очень близок к «железу». Изучая его, ты увидишь, как компьютер на самом деле работает с памятью.

Немного истории

Язык C создал в 1972 году Деннис Ритчи в лаборатории Bell Labs в США. Ему был нужен язык для написания операционной системы Unix: язык ассемблера был слишком привязан к одной конкретной машине, а языки высокого уровня того времени работали слишком медленно. Ответом стал C — язык почти такой же быстрый, как ассемблер, но переносимый на другие компьютеры.

  1. 1972
    Рождение C

    Деннис Ритчи создаёт C в Bell Labs как преемника языка B.

  2. 1973
    Unix переписывают на C

    Ядро операционной системы Unix переписывают на языке C.

  3. 1978
    Книга K&R

    Брайан Керниган и Деннис Ритчи выпускают книгу «The C Programming Language» («Язык программирования C»).

  4. 1989
    Первый стандарт: C89

    Американский национальный институт стандартов (ANSI) утверждает первый официальный стандарт языка.

  5. 1999
    Стандарт C99

    Появляются комментарии //, тип long long и объявление переменных прямо в цикле for.

  6. 2011
    Стандарт C11

    Современный стандарт с поддержкой многопоточных программ. Позже вышли C17 и C23.

Где C используется сегодня?

  • Операционные системы: ядра Linux и Windows в основном написаны на C.
  • Встраиваемые системы: микроконтроллеры в стиральных машинах, автомобилях, медицинских приборах и роутерах — там, где памяти мало, а скорость важна.
  • Инструменты и другие языки: стандартный интерпретатор Python (CPython), база данных SQLite и система контроля версий Git написаны на C.
  • Основа других языков: C++, Java, C# и JavaScript взяли у C фигурные скобки, точку с запятой и операторы. Поэтому после C эти языки покажутся тебе знакомыми.

Первая программа

Вот классическая первая программа. Сохрани её в файле hello.c:

C
#include <stdio.h>

int main(void) {
    printf("Hello, World!\n");
    return 0;
}
Ожидаемый результат
Hello, World!
  • #include <stdio.h> подключает заголовочный файл стандартной библиотеки ввода-вывода, в котором объявлена функция printf.
  • int main(void) — главная функция: с неё начинается выполнение любой программы на C. int означает, что функция возвращает целое число, а void — что она не принимает параметров.
  • Фигурные скобки { } ограничивают тело функции. Каждая инструкция заканчивается точкой с запятой (;).
  • printf выводит текст на экран, а \n переводит курсор на новую строку.
  • return 0; сообщает операционной системе, что программа завершилась успешно.

От кода к программе: компиляция

Компьютер не может выполнить текст из hello.c напрямую. C — компилируемый язык: сначала компилятор переводит весь исходный код в машинный и сохраняет его в исполняемый файл. Самые популярные компиляторы C — GCC, Clang и MSVC от Microsoft.

  1. 1
    Напиши код

    Создай файл с расширением .c в любом текстовом редакторе или IDE (например, VS Code) и напиши в нём код.

  2. 2
    Скомпилируй

    Введи в терминале gcc hello.c -o hello. Компилятор проверяет код: если ошибок нет, он создаёт исполняемый файл hello, а если есть — показывает номер строки с ошибкой.

  3. 3
    Запусти

    Введи ./hello в Linux и macOS или hello.exe в Windows. После каждого изменения кода его нужно компилировать заново.

Terminal
gcc hello.c -o hello
./hello
Ожидаемый результат
Hello, World!
Компиляция и запуск с помощью GCC в терминале. -o hello задаёт имя получаемого файла.

printf и спецификаторы формата

printf умеет не только печатать готовый текст. Внутрь текста помещают спецификаторы формата — коды, начинающиеся с %, и каждый из них заменяется следующим значением после запятой. Пока не беспокойся о переменных — подробно мы разберём их на следующем уроке.

СпецификаторДля чегоЗначениеВывод
%dцелое число (int)4242
%fдробное число (double, float)3.53.500000
%.2fдробное число с 2 знаками после точки3.141593.14
%cодин символ (char)'A'A
%sстрока (текст)"Baku"Baku
%%сам знак процента–%
C
#include <stdio.h>

int main(void) {
    int age = 14;
    double height = 1.62;
    char grade = 'A';
    printf("Name: %s\n", "Leyla");
    printf("Age: %d\n", age);
    printf("Height: %f m\n", height);
    printf("Height: %.2f m\n", height);
    printf("Grade: %c\n", grade);
    printf("Progress: 75%%\n");
    return 0;
}
Ожидаемый результат
Name: Leyla
Age: 14
Height: 1.620000 m
Height: 1.62 m
Grade: A
Progress: 75%

Обрати внимание: %f всегда печатает шесть цифр после точки, а %.2f округляет число до двух. Чтобы напечатать сам знак %, пишут %%.

Некоторые символы нельзя написать внутри кавычек напрямую. Они начинаются с обратной косой черты и называются управляющими последовательностями: \n — новая строка, \t — табуляция, \" — двойная кавычка, \\ — сама обратная косая черта.

C
#include <stdio.h>

int main(void) {
    printf("Line 1\nLine 2\n");
    printf("She said \"Hi!\"\n");
    printf("Folder: C:\\code\n");
    printf("Sum: %d\n", 2 + 3);
    return 0;
}
Ожидаемый результат
Line 1
Line 2
She said "Hi!"
Folder: C:\code
Sum: 5
Один printf может напечатать несколько строк, а %d показывает результат выражения 2 + 3.
1 / 6

Главное

  • C создал в 1972 году Деннис Ритчи в Bell Labs для написания Unix.
  • C — компилируемый язык: gcc hello.c -o hello превращает исходный код в исполняемый файл.
  • Любая программа начинается с int main(void); return 0; означает успешное завершение.
  • #include <stdio.h> позволяет использовать printf и другие функции ввода-вывода.
  • Спецификаторы формата: %d — int, %f — double, %.2f — два знака после точки, %c — символ, %s — строка.

Проверь себя

Вопросов: 10. Каждый правильный ответ приносит XP.

1 / 10
Кто и где создал язык C?