Лексика языка Си (А.А. Вылиток - Лекции)
Описание файла
Файл "Лексика языка Си" внутри архива находится в папке "А.А. Вылиток - Лекции". PDF-файл из архива "А.А. Вылиток - Лекции", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
А. А. ВылитокЛексика языка СиИсходный файл с программой на языке Си представляет собой последовательностьсимволов, разбитую на строки. Символы должны быть из алфавита языка Си.Алфавит включает:1. латинские буквы: A–Z, a–z2. цифры: 0−93. символ пробела4. управляющие символы: табуляции, перевод страницы, новая строка, возвраткаретки5. 29 графических символов, таких как + − , “ / ? и др.Пробельные символы: символы из пунктов 3 и 4.Комментарий: /* это пример комментария */Комментарии не могут вкладываться друг в друга.Пробельные символы и комментарии разделяют лексемы. Последовательность изкомментариев или пробельных символов равносильна одному пробелу.Лексема — это минимальная смысловая единица языка.
К лексемам относятся: операции; разделители; идентификаторы; ключевые слова; константы.Операции и разделителиПростые операции:Составные операции присваивания:Другие составные операции:Разделители:! % ^ & * − + = ~ | . < > / ?+= −= *= /= %= <<= >>= &= ^= |=−−> ++ −− << >> <= >= == != && | |() [] {} , ; : …Ключевые словаautobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructvolatileswitchwhiletypedefunionunsignedvoid1А. А. ВылитокИменаИмя — это идентификатор, не совпадающий по написанию с ключевым словом.Имена используются в программе для обозначения переменных, меток, функций, типови других объектов.буква или символподчеркиванияИдентификатор ::=буква или символподчеркиванияцифрабуква ::= a | b | c | … | z | A | B |… | ZПримеры описаний переменных:int i ;/* переменная целого типа */long l ;/* переменная «длинного» целого типа */char c;/* символ */double f ;/* вещественного типа */unsigned int u;/* беззнаковое целое */long double ld;/* длинное вещественное */КонстантыКонстанты служат для изображения значений некоторых типов в программе.целая константа ::=00−7LlUuUuLl1−90−90X0x0−9a–fA–Fвещественная константа ::=0−9Ff0−90−9Ee0−9Ll0−9+символьная константа ::='символ'эскейп-последовательность2А.
А. Вылитокэскейп-последовательность ::=\0−70−70−7"' ?\abfnrtvx0−9 a–f A–FСимвол — из набора символов на данной машине.Примеры: '\x30' означает '0'; '\007' означает '\b'.Значение некоторых эскейп-последовательностей:'\n'новая строка'\a'сигнал звонок'\r'возврат каретки'\b'возврат на шаг'\t'табуляция'\f'перевод страницы'\v'вертикальная табуляцияТип константы определяется по ее виду. Символьная константа имеет тип int. Еезначением является код символа.Целая константа без суффикса имеет тип int (или тип long, если она столь велика, что «неумещается» в тип int). Целая константа с суффиксом u или U имеет тип unsigned, ссуффиксом l или L — тип long, с обоими суффиксами — тип unsigned long.Вещественная константа без суффикса имеет тип double, с суффиксом f или F — тип float,с суффиксом l или L — тип long double.Примеры констант56 – целая константа (int), 6.7 – вещественная константа (double), '0' означает целоечисло, равное 48, если в реализации используется ASCII кодировка, '\0' означает целоечисло ноль, это так называемая null-литера.
Все литерные константы имеют целый тип int.Строковые константыПримеры:"это строка\n""" /* пустая строка */Внутреннее представление в виде массива:эт ост рока \n\0\03А. А. ВылитокСтрокиchar str1[] = "можно изменять эту строку"; /* str1 — массив из 26 символов */const char str2[] = "изменять нельзя";/* const — квалификатор типа */Еще о комментарияхВ стандарте С99 введен еще один вид комментария как в С++: две косые черты начинаюткомментарий и он оканчивается концом строки:// это комментарий в стиле C++Рекомендуется не смешивать комментарии разных стилей. Будем использоватькомментарии в стиле С89.Для игнорирования фрагмента кода лучше использовать не комментарий, а директивыпрепроцессора#if 0…этот фрагмент игнорируется компилятором#endif4.