Программирование на языке Си/§1
В этой лекции мы рассмотрим базовый синтаксис языка Си.
Элементы языка Си
[править]Множество символов, используемых в языке СИ, можно разделить на пять групп.
- Символы, используемые для образования ключевых слов и идентификаторов. В эту группу входят прописные и строчные буквы английского алфавита, а также символ подчеркивания. Следует отметить, что одинаковые прописные и строчные буквы считаются различными символами, так как имеют различные коды.
- Группа прописных и строчных букв русского алфавита и арабские цифры
- Знаки нумерации и специальные символы. Эти символы используются с одной стороны для организации процесса вычислений, а с другой - для передачи компилятору определенного набора инструкций.
- Управляющие и разделительные символы. К той группе символов относятся: пробел, символы табуляции, перевода строки, возврата каретки, новая страница и новая строка. Эти символы отделяют друг от друга объекты, определяемые пользователем, к которым относятся константы и идентификаторы. Последовательность разделительных символов рассматривается компилятором как один символ (последовательность пробелов).
- Кроме выделенных групп символов в языке Си широко используются так называемые, управляющие последовательности, т.е. специальные символьные комбинации, используемые в функциях ввода и вывода информации. Управляющая последовательность строится на основе использования обратной дробной черты (\) (обязательный первый символ) и комбинацией латинских букв и цифр.
Управляющая последовательность | Наименование | Шестнадцатеричная замена |
---|---|---|
\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 |