Структура программы
Типы данных
Константы и переменные
Операции
Ввод-вывод
Условные операторы
Операторы цикла
Функции, математические функции
Область видимости объектов и модификация
Указатели
Массивы
Динамическое выделение памяти
Функции обработки строк
Сложные типы данных
Директивы препроцессора
Переопределение типов
Функции работы с датой и временем
Работа с файлами
Язык программирования Си — универсальный язык программирования, который завоевал особую популярность у программистов, благодаря сочетанию возможностей языков программирования высокого и низкого уровней. Большинство программистов предпочитают использовать язык Си для серьезных разработок потому, что их привлекают такие особенности языка, как свобода выражения мыслей, мобильность и чрезвычайная доступность.
Язык Си дает возможность программисту осуществлять непосредственный доступ к ячейкам памяти и регистрам компьютера, требуя при этом знания особенностей функционирования ЭВМ. В этом Си схож с языком низкого уровня — ассемблером, хотя на самом деле он представляет собой гораздо более мощное средство решения трудных задач и создания сложных программных систем.
Язык Си был разработан американцем Деннисом Ритчи в исследовательском центре Computer Science Research Center of Bell Laboratories корпорации AT&T в 1972 г. Первоначальная реализация Си была выполнена на ЭВМ PDP-11 фирмы DEC для создания операционной системы UNIX. Позже он был перенесен в среду многих операционных систем и существует независимо от любой из них. Программы, написанные на языке Си, как правило, можно перенести в любую другую операционную систему или на другой компьютер либо с минимальными изменениями, либо вовсе без них.
Язык Си также используется при составлении программ для микроконтроллеров.
Язык Си оказал существенное влияние на развитие индустрии программного обеспечения, а его синтаксис стал основой для таких языков программирования как C++, C#, Java, PHP и др.
Язык программирования C имеет несколько стандартных версий, наиболее часто используемые из них — C89/C90, C99, C11 и C18.
C89/C90 (ANSI C или ISO C) был первой стандартизированной версией языка, выпущенной в 1989 и 1990 годах соответственно. В этом стандарте представлены многие функции, которые до сих пор используются в современном программировании на языке C, включая типы данных, структуры управления и стандартные библиотеки.
C99 (ISO/IEC 9899:1999) представил несколько новых функций, включая массивы переменной длины, гибкие элементы массива, комплексные числа, встроенные функции и назначенные инициализаторы. Этот стандарт также включает несколько новых библиотечных функций и обновления существующих.
C11 (ISO/IEC 9899:2011) представил несколько новых функций, включая _Generic, static_assert и квалификатор атомарного типа. Этот стандарт также включает несколько обновлений библиотек, в том числе новые функции для математических вычислений, потоков и манипуляций с памятью.
C17/C18 (ISO/IEC 9899:2018) — это последний стандарт, включающий обновления и пояснения к спецификации языка и библиотекам.