Си - язык программирования общего назначения, который очень известен своей эффективностью, экономичностью ресурсов и переносимостью на других программные платформы. Все эти преимущества обеспечивают качество разработки программного обеспечения, их быстроту и сравнительно небольшой размер. Программы написанные на Си по скорости работы можно даже сравнить с программами написанными на языке ассемблера.

Несмотря на то, что Си не включает в себя встроенные компоненты по работе с вводом-выводом, распределению памяти, управлению процессами, его системное окружение позволяет подключать объектные модули с такими функциями. Этого вполне достаточно, чтобы разрабатывать программное обеспечение абсолютно любого уровня, как небольшие программы, так и комплекс сложных программных систем.

Языковые особенности Си позволяют делать программы независимыми операционной системы или платформы.

Наиболее важными особенностями языка программирования Си являются:

  • обеспечение полного набора операторов структурного программирования
  • большой набор операций, в том числе операции прямой трансляции в машинный код
  • поддержка указателей на переменные и функции

Указатели в Си позволяют создавать указатели и ссылаться на объекты таким же путем, как это делает компьютер. Арифметика указателей осуществляет доступ и манипуляции с адресами памяти. Си имеет препроцессор для обработки текстовых файлов перед компиляцией. Препроцессор может быть использован для любых текстовых файлов.

Таким образом, Си это гибкий язык программирования, позволяющий писать качественные программные продукты с высокой скоростью работы.

Синтаксис

В программах написанных на Си используются множество символов и множество представимых символов. Множество символов -  это буквы, цифры, знаки пунктуации. Комбинирование этих символов создают конструкции языка. Множество представимых символов - это подмножество множества символов, состоящее из всех букв, цифр, символов которые можно представить как графически отдельные символы.

Программный код на Си может содержать только символы которые определены для множества символов. Лишь только комментарии, символьные константы и строковые литералы могут содержать любой символ. Другие, неверно используемые символы означают ошибку для компилятора Си, о чем он будет выводить сообщать.

Буквы и цифры

Множество символов Си включает в себя малые и большие буквы английского алфавита и 10 арабских цифр:

  • большие английские буквы:  A B C D E F G H I J K L M N O P Q R T U V W X Y Z
  • малые английские буквы: a b c d e f g h i j k l m n o p q r t u v w x y z
  • десятичные арабские цифры: 0 1 2 3 4 5 6 7 8 9

Цифры и буквы используются для наименования ключевых слов, констант, идентификаторов.

Символы пробела

Язык Си включает пробельные символы - пробелы, перевод строки, табуляцию, новую страницу, возврат каретки, вертикальную табуляцию, новую строку. Пробельные символы разделяют символы программного кода друг от друга.

Специальные символы и знаки пунктуации

Специальные символы и знаки пунктуации в Си используются для выполнения совершенно различных задач. Они могут использоваться в строковых литералах, комментариях, константах.

ESC-последовательности

ESC-последовательности - специальные символьные комбинации, представляющие собой пробельные символы и неграфические символы в строках. Они используются для таких действий, как возврат каретки и табуляции и т.п.

Операции

Операции в Си как и в любом другом языке программирования представляют комбинации символов для работы с разными величинами.

  • Логическое НЕ: !
  • Побитовое дополнение: ~
  • Сложение: +
  • Вычитание, отрицание: -
  • Умножение: *
  • Деление: /
  • Остаток: %
  • Сдвиг влево: <<
  • Сдвиг вправо: >>
  • Меньше: <
  • Меньше или равно: <=
  • Больше: >
  • Больше или равно: >=
  • Равно: ==
  • Не равно: !=
  • Побитовое И: &
  • Побитовое включающее ИЛИ: |
  • Побитовое исключающее ИЛИ: ^
  • Логическое И: &&
  • Логическое ИЛИ: ||
  • Последовательное выполнение: ,
  • Операция условного выражения: ?:
  • Инкремент: ++
  • Декремент: --
  • Простое присваивание: =
  • Сложение с присваиванием: +=
  • Вычитание с присваиванием: -=
  • Умножение с присваиванием: * =
  • Деление с присваиванием: /=
  • Остаток с присваиванием: %=
  • Сдвиг вправо с присваиванием: >>=
  • Сдвиг влево с присваиванием: <<=
  • Побитовое И с присваиванием: &=
  • Побитовое включающее ИЛИ с присваиванием: |=
  • Побитовое исключающее ИЛИ с присваиванием: ^=

Константы

Константы представляют собой неизменяемую величину, содержащую в своем значении число или строку. Есть 4 типа констант:

  • целые - десятичное, восьмеричное или шестнадцатеричное число целой величины.
  • с плавающей точкой - действительное десятичное положительное число.
  • константы-символы - буква, цифра, знак пунктуации или ESC-символ в одинарных кавычках
  • строчные литералы - последовательность букв, цифр и символов, заключенная в двойные кавычки

Идентификаторы

Идентификаторы - это имена переменных, функций и меток в программе Си. Они создаются объявлением в исходном коде нужной переменной или метода. Идентификаторы могут состоять из букв, цифр, символа нижнего подчеркивания.

Ключевые слова

Ключевые слова - предопределенные идентификаторы языка Си. Имена идентификаторов, которые программист задает самостоятельно, не должны совпадать с ключевыми словами. Существуют следующие ключевые слова:

  • auto
  • double
  • int
  • struct
  • break
  • else
  • long
  • switch
  • case
  • enum
  • register
  • typedef
  • char
  • extern
  • return
  • union
  • const
  • float
  • short
  • unsigned
  • continue
  • for
  • signed
  • void
  • default
  • goto
  • sizeof
  • while
  • do
  • if
  • static
  • volatile

Комментарии

Комментарии - предназначены для описания программного кода. Компилятор принимает комментарии за отдельный набор символов и таким образом игнорирует любой код, который может быть заключен внутри комментариев.

Лексемы

Компилятор Си обрабатывает программу, разбивая код на группы символов - лексемы. Участки кода с квадратными скобками, фигурными скобками, круглыми скобками являются лексемами.