В этой лекции мы рассмотрим базовый синтаксис языка Си.

Элементы языка Си

править

Множество символов, используемых в языке СИ, можно разделить на пять групп.

  • Символы, используемые для образования ключевых слов и идентификаторов. В эту группу входят прописные и строчные буквы английского алфавита, а также символ подчеркивания. Следует отметить, что одинаковые прописные и строчные буквы считаются различными символами, так как имеют различные коды.
  • Группа прописных и строчных букв русского алфавита и арабские цифры
  • Знаки нумерации и специальные символы. Эти символы используются с одной стороны для организации процесса вычислений, а с другой - для передачи компилятору определенного набора инструкций.
  • Управляющие и разделительные символы. К той группе символов относятся: пробел, символы табуляции, перевода строки, возврата каретки, новая страница и новая строка. Эти символы отделяют друг от друга объекты, определяемые пользователем, к которым относятся константы и идентификаторы. Последовательность разделительных символов рассматривается компилятором как один символ (последовательность пробелов).
  • Кроме выделенных групп символов в языке Си широко используются так называемые, управляющие последовательности, т.е. специальные символьные комбинации, используемые в функциях ввода и вывода информации. Управляющая последовательность строится на основе использования обратной дробной черты (\) (обязательный первый символ) и комбинацией латинских букв и цифр.
Управляющая последовательность Наименование Шестнадцатеричная замена
\a Звонок 007
\b Возврат на шаг 008
\t Горизонтальная табуляция 009
\n Переход на новую строку 00A
\v Вертикальная табуляция 00B
\r Возврат каретки 00C
\f Перевод формата 00D
\" Кавычки 022
\' Апостроф 027
\0 Ноль-символ 000
\\ Обратная дробная черта 05C
\ddd Символ набора кодов ПЭВМ в восьмеричном представлении
\xddd Символ набора кодов ПЭВМ в шестнадцатеричном представлении

Последовательности вида \ddd и \xddd (здесь d обозначает цифру) позволяет представить символ из набора кодов ПЭВМ как последовательность восьмеричных или шестнадцатеричных цифр соответственно. Например символ возврата каретки может быть представлен различными способами:

\r - общая управляющая последовательность,

\015 - восьмеричная управляющая последовательность,

\x00D - шестнадцатеричная управляющая последовательность.

Следует отметить, что в строковых константах всегда обязательно задавать все три цифры в управляющей последовательности. Например отдельную управляющую последовательность \n (переход на новую строку) можно представить как \010 или \xA, но в строковых константах необходимо задавать все три цифры, в противном случае символ или символы следующие за управляющей последовательностью будут рассматриваться как ее недостающая часть. Например:

"ABCDE\x009FGH" данная строковая команда будет напечатана с использованием определенных функций языка СИ, как два слова ABCDE FGH, разделенные 8-ю пробелами, в этом случае если указать неполную управляющую строку"ABCDE\x09FGH",то на печати появится ABCDE=|=GH, так как компилятор воспримет последовательность \x09F как символ "=+=".

Отметим тот факт, что, если обратная дробная черта предшествует символу не являющемуся управляющей последовательностью (т.е. не включенному в табл. и не являющемуся цифрой, то эта черта игнорируется, а сам символ представляется как литеральный. Например:

символ \h представляется символом h в строковой или символьной константе.

Кроме определения управляющей последовательности, символ обратной дробной черты (\) используется также как символ продолжения. Если за (\) следует (\n), то оба символа игнорируются, а следующая строка является продолжением предыдущей. Это свойство может быть использовано для записи длинных строк.

Константы и строки

править

Константа - это значение, которое не может быть изменено. В языке СИ разделяют четыре типа констант:

  • целые константы
  • константы с плавающей запятой
  • символьные константы
  • строковые литералы

Целая константа: это десятичное, восьмеричное или шестнадцатеричное число, которое представляет целую величину в одной из следующих форм: десятичной, восьмеричной или шестнадцатеричной.

  • Десятичная константа состоит из одной или нескольких десятичных цифр, причем первая цифра не должна быть нулем (в противном случае число будет воспринято как восьмеричное).
  • Восьмеричная константа состоит из обязательного нуля и одной или нескольких восьмеричных цифр (среди цифр должны отсутствовать восьмерка и девятка, так как эти цифры не входят в восьмеричную систему счисления).
  • Шестнадцатеричная константа начинается с обязательной последовательности 0х или 0Х и содержит одну или несколько шестнадцатеричных цифр (цифры представляющие собой набор цифр шеснадцатеричной системы счисления: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

Константа с плавающей точкой - десятичное число, представленное в виде действительной величины с десятичной точкой или экспонентой.

Число с плавающей точкой состоит из целой и дробные части и (или) экспоненты. Константы с плавающей точкой представляют положительные величины удвоенной точности (имеют тип double). Для определения отрицательной величины необходимо сформировать константное выражение, состоящее из знака минуса и положительной константы.

Символьная константа - представляется символом заключенном в апострофы. Управляющая последовательность рассматривается как одиночный символ, допустимо ее использовать в символьных константах. Значением символьной константы является числовой код символа.

Строковая константа (литерал) - последовательность символов (включая строковые и прописные буквы русского и латинского языка, а также цифры) заключенные в кавычки (") . Например: "Школа N 35", "город Тамбов", "YZPT КОД".


Служебные слова

править

Спецификаторы типа:

  • char - символьный;
  • double - вещественный двойной точности с плавающей запятой;
  • enum - перечисление - определение целочисленных констант, для каждой из которых выводится имя и значение;
  • float - вещественный с плавающей точкой;
  • int - целочисленный тип;
  • long - длинное целое;
  • short - короткое целое;
  • struct - структурный тип;
  • signed - целое со знаком;
  • union - объединяющий тип;
  • unsigned - целое без знака;
  • void - отсутствие значения;
  • typedef - вводит синоним обозначения типа.

Классификаторы типа:

  • сonst - классификатор объекта, доступного только для чтения.
  • volatile - классификатор объекта, который может изменяться без явных указаний программиста.

Операторы:

  • if - если ( if (условие) - если условие выполняется, то)
  • for - для ( for(i=0;i<10;i++) - для i=0, пока i<10 увеличиваем на единицу (i++) )
  • while - пока (while (K<4) пока k<4 выполняем)
  • return - возврат из функции
  • break - выйти из цикла или переключиться
  • continue - завершить текущую итерацию цикла
  • goto - безусловный переход
  • switch - переключатель

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

  • default - определяет действия при отсутствии нужного варианта в операторе switch;
  • sizeof - операция определения размера операнда в байтах;
  • case - определяет вариант в операторе switch;
  • else - иначе в операторе if (if (условие) k=1; else k=2;- если выполняется условие, то k=1. иначе k=2.)

Разделители

править


Курс "Программирование на языке Си"
Предыдущий урок: Программирование на языке СиСледующий урок: Программирование на языке Си/§2