- Рассказывать об истории C и о том, где он применяется сегодня
- Компилировать программу на C с помощью
gccи запускать её - Понимать смысл строк
#include <stdio.h>,int main(void)иreturn 0; - Использовать спецификаторы формата и управляющие последовательности в
printf
Твой телефон, стиральная машина, блок управления двигателем автомобиля и домашний роутер — внутри каждого из них работают программы. Удивительно многие из них написаны на языке, которому уже больше пятидесяти лет, — на C. Он быстрый, компактный и очень близок к «железу». Изучая его, ты увидишь, как компьютер на самом деле работает с памятью.
Немного истории
Язык C создал в 1972 году Деннис Ритчи в лаборатории Bell Labs в США. Ему был нужен язык для написания операционной системы Unix: язык ассемблера был слишком привязан к одной конкретной машине, а языки высокого уровня того времени работали слишком медленно. Ответом стал C — язык почти такой же быстрый, как ассемблер, но переносимый на другие компьютеры.
- 1972Рождение C
Деннис Ритчи создаёт C в Bell Labs как преемника языка B.
- 1973Unix переписывают на C
Ядро операционной системы Unix переписывают на языке C.
- 1978Книга K&R
Брайан Керниган и Деннис Ритчи выпускают книгу «The C Programming Language» («Язык программирования C»).
- 1989Первый стандарт: C89
Американский национальный институт стандартов (ANSI) утверждает первый официальный стандарт языка.
- 1999Стандарт C99
Появляются комментарии
//, типlong longи объявление переменных прямо в циклеfor. - 2011Стандарт C11
Современный стандарт с поддержкой многопоточных программ. Позже вышли C17 и C23.
Где C используется сегодня?
- Операционные системы: ядра Linux и Windows в основном написаны на C.
- Встраиваемые системы: микроконтроллеры в стиральных машинах, автомобилях, медицинских приборах и роутерах — там, где памяти мало, а скорость важна.
- Инструменты и другие языки: стандартный интерпретатор Python (CPython), база данных SQLite и система контроля версий Git написаны на C.
- Основа других языков: C++, Java, C# и JavaScript взяли у C фигурные скобки, точку с запятой и операторы. Поэтому после C эти языки покажутся тебе знакомыми.
Первая программа
Вот классическая первая программа. Сохрани её в файле hello.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Напиши код
Создай файл с расширением
.cв любом текстовом редакторе или IDE (например, VS Code) и напиши в нём код. - 2Скомпилируй
Введи в терминале
gcc hello.c -o hello. Компилятор проверяет код: если ошибок нет, он создаёт исполняемый файлhello, а если есть — показывает номер строки с ошибкой. - 3Запусти
Введи
./helloв Linux и macOS илиhello.exeв Windows. После каждого изменения кода его нужно компилировать заново.
gcc hello.c -o hello
./helloHello, World!
-o hello задаёт имя получаемого файла.printf и спецификаторы формата
printf умеет не только печатать готовый текст. Внутрь текста помещают спецификаторы формата — коды, начинающиеся с %, и каждый из них заменяется следующим значением после запятой. Пока не беспокойся о переменных — подробно мы разберём их на следующем уроке.
| Спецификатор | Для чего | Значение | Вывод |
|---|---|---|---|
%d | целое число (int) | 42 | 42 |
%f | дробное число (double, float) | 3.5 | 3.500000 |
%.2f | дробное число с 2 знаками после точки | 3.14159 | 3.14 |
%c | один символ (char) | 'A' | A |
%s | строка (текст) | "Baku" | Baku |
%% | сам знак процента | – | % |
#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 — табуляция, \" — двойная кавычка, \\ — сама обратная косая черта.
#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.Главное
- 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.