Язык Си — это очень мощный язык программирования, и к тому же один из самых популярных. Он очень гибок и не накладывает на программиста никаких ограничений, но именно это и может стать проблемой при изучении. Поэтому мы подобрали для вас несколько книг, которые помогут разобраться с основами языка, не отстрелив себе пару конечностей
The C Book

Книга «The C Book» предназначена для тех, кто уже имеет опыт программирования на высокоуровневых языках. Она посвящена моментам, характерным именно для Си.
Вот оглавление:
- Введение в Си.
- Переменные и арифметика.
- Логические выражения и условные операторы.
- Функции.
- Массивы и указатели.
- Структуры данных.
- Препроцессор.
- Особенности Си.
- Библиотеки.
- Примеры программ.
C Elements of Style

«C Elements of Style» — это полезное руководство, описывающее основы хорошего стиля программирования. Оно научит вас писать код, который будет легко читать, понимать и поддерживать.
В книге вы найдёте советы по написанию комментариев, именованию переменных, форматированию, организации каталогов, созданию сборочных файлов и другим темам.
Build Your Own Lisp

Изучайте язык Си и одновременно пишите свой язык программирования — минималистскую версию Lisp — меньше чем за 1000 строк кода.
Эта книга предназначена для тех, кто хочет изучить Си и / или написать свой язык программирования. Однако вам явно потребуется какой-то опыт написания кода, поэтому в качестве первой книги мы её не рекомендуем.
The GNU C Reference Manual

«The GNU C Reference Manual» — это шпаргалка по языку Си стандартов C89 ANSI, C99 ISO и расширениям GNU. Она точно не нужна начинающим программистам.
Затронутые темы:
- Лексические элементы.
- Типы данных.
- Выражения и операции.
- Операторы.
- Функции.
- Структура программы и области видимости.
- Пример программы.
The GNU C Programming Tutorial

Руководство «The GNU C Programming Tutorial» понятным образом объясняет читателю основы языка. Оно подробно описывает все основные элементы Си и рассказывает, как писать на нём программы, делая акцент на компиляторе GNU/Linux.
Рассматриваются такие темы, как функции, переменные и их объявление, области видимости, операторы, указатели, циклы, массивы, строки, а также многие другие.
Essential C

Эта книга — небольшая методичка, составленная в Стэнфорде. Она вкратце описывает все основы языка Си. Из-за сжатых объяснений рекомендуется, чтобы у читателя уже был опыт программирования.
Затрагиваются такие темы: переменные, операторы, циклы, функции, ссылки, указатели, структуры, препроцессор и стандартная библиотека.
Содержание:
- Вступление.
- Базовые типы и операторы.
- Условные операторы.
- Сложные типы данных.
- Функции.
- Препроцессор.
- Массивы и указатели.
- Стандартная библиотека.
Beej’s Guide to C Programming

Книга «Beej’s Guide to C Programming» пытается вывести читателя из состояния полного непонимания Си и дать ему понять, что Си — это лучший язык программирования.
Оглавление:
- Основы программирования.
- Переменные, выражения и операторы.
- Возвращение к основам.
- Функции.
- Переменные, часть 2.
- Указатели.
- Структуры.
- Массивы.
- Строки.
- Динамическая память.
- Продвинутые фичи.
- Стандартная библиотека ввода / вывода.
- Управление строками.
- Математика.
Modern C

«Modern C» стремится мотивировать читателя повысить свой уровень знания языка. Книга разделена на 5 уровней:
- Первый уровень предоставляет читателю базовые знания о программах Си, их целях и структуре.
- Второй уровень описывает основные принципы и фичи, такие как условные операторы, типы данных и функции.
- Третий уровень ведёт к сердцу Си. Он рассказывает об указателях, модели памяти языка и его стандартной библиотекеe.
- Четвёртый уровень затрагивает такие продвинутые темы, как производительность, атомарность, потоки, и другие.
- Пятый уровень — в нём автор описывает своё видение развития языка.
An Introduction to GCC

Руководство «An Introduction to GCC» рассказывает о C и C++ компиляторах GNU, gcc and g++, являющихся частью GNU Compiler Collection (GCC).
Содержание:
- Вступление.
- Компиляция Си-программы.
- Опции компиляции.
- Использование препроцессора.
- Компиляция для отладки.
- Компиляция с оптимизацией.
- Компиляция CPP-программы.
- Платформо-специфические опции.
- Решение проблем.
- Инструменты.
- Принципы работы компилятора.
- Изучение скомпилированных файлов.
- Типичные ошибки.
- Дополнительные материалы.
Вот ещё несколько бесплатных книг по языку Си:
- Introduction to C Programming;
- The New Standard C: An Economic and Cultural Commentary;
- Object-Oriented Programming with ANSI-C;
- Writing Bug-Free C Code.
И, разумеется, не стоит забывать про каноничную книгу Кернигана и Ритчи: The C Programming Language. Сложная, не для начинающих, но по праву признана шедевром.
По материалам «Learn C Pprogramming With 9 Excellent Open Source Books»
