Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на программирование.doc
Скачиваний:
10
Добавлен:
17.04.2019
Размер:
393.22 Кб
Скачать

2.1. Элементы языка с

Под элементами языка понимаются его базовые конструкции, используемые при написании программ: алфавит; константы; идентификаторы; ключевые слова; комментарии.

Алфавит

В программах на языке Си используются два множества символов: множество символов языка Си и множество представимых символов. Множество символов языка Си содержит буквы, цифры и знаки пунктуации, которые имеют определенный смысл для компилятора языка Си. Множество символов языка Си является подмножеством множества представимых символов. Множество представимых символов состоит из всех букв, цифр и символов, которые могут быть представлены как отдельный символ на клавиатуре данного персонального компьютера. Программа на языке Си может содержать только символы из множества символов языка Си, однако внутри символьных строк, символьных констант и комментариев может быть использован любой представимый символ.

Буквы и цифры

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

Пробельные символы

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

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

Комментарии компилятор языка Си также рассматривает как пробельные символы.

Разделители

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

, ! . | ; / (Слэш) : \ ? ~ (Тильда) ‘ (Апостроф) _ ( # ) % { & (Амперсанд) } ^ (Стрелка вверх) < - > = [ + ] * (Знак умножения (звездочка))

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

Специальные символы

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

\n Новая строка

\t Горизонтальная табуляция

\v Вертикальная табуляция

\b Забой

\г Возврат каретки

\f Новая страница

\а Звуковой сигнал

\’ Апостроф

\" Двойная кавычка

\\ Обратный слэш

\ddd Байтовое значение в восьмеричном представлении

\xdd Байтовое значение в шестнадцатеричном представлении

Операции

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

! Логическое НЕ

~ Обратный код

+ Сложение; унарный плюс

- Вычитание; унарный минус

* Умножение; косвенная адресация

/ Деление

% Остаток от деления

<< Сдвиг влево

>> Сдвиг вправо

< Меньше

<= Меньше или равно

> Больше

>= Больше или равно

== Равно

!= Не равно

& Поразрядное И; адресация

| Поразрядное включающее ИЛИ

^ Поразрядное исключающее ИЛИ

&& Логическое И

|| Логическое ИЛИ

?: Условная операция

++ Инкремент

-- Декремент

= Простое присваивание

+= Присваивание со сложением

-= Присваивание с вычитанием

*= Присваивание с умножением

/= Присваивание с делением

%= Присваивание с остатком от деления

>>= Присваивание со сдвигом вправо

<<= Присваивание со сдвигом влево

&= Присваивание с поразрядным И

|= Присваивание с поразрядным включающим ИЛИ

^= Присваивание с поразрядным исключающим ИЛИ

Константа — это число, символ или строка символов. Константы используются в программе для задания постоянных величин. В языке Си различают четыре типа констант: целые, с плавающей точкой, символьные константы и символьные строки.

Целые константы — это десятичное, восьмеричное или шестнадцатеричное число, которое представляет целое значение. Между цифрами целой константы пробельные символы недопустимы.

Целые константы всегда специфицируют положительные значения. Если требуется отрицательное значение, то необходимо сформировать константное выражение из знака минус и следующей за ним константы. Знак минус рассматривается при этом как арифметическая операция.

Каждая целая константа имеет тип, определяющий ее представление в памяти, например, int.

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

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

Символьные строки — это последовательность символов, заключенная в двойные кавычки. Символьная строка рассматривается как массив символов, каждый элемент которого представляет отдельный символ. Тип символьной строки—массив элементов типа char. Число элементов в массиве равно числу символов в символьной строке плюс один, поскольку нулевой символ (признак конца символьной строки) тоже является элементом массива.

Идентификаторы — это имена переменных, однозначно определяющих соответствие переменной с ее адресом. К идентификаторам относят: имена переменных, функций; тэги – имена типов структур, объединений, перечислимых типов. Компилятор языка Си не допускает использования идентификаторов, совпадающих по написанию с ключевыми словами.

Ключевые слова — это предопределенные идентификаторы, которые имеют специальное значение для компилятора языка Си. Их использование строго регламентировано.

список ключевых слов:

auto (класс памяти. Определяет время жизни и область действия объекта); break; case (часть оператора выбора, обозначает начало условной переменной, анализируемой в операторе выбора); char; continue (оператор передачи управления из тела цикла на оператор вычисления условия продолжения цикла, в операторе for на оператор изменения счетчика цикла); default (часть оператора выбора); else; enum (перечислимый тип данных. Представляет собой подмножество целого типа); extern (внешний класс памяти, переменная должна иметь описание на внешнем уровне); float; for; goto; int; long (префикс к типу, указывающий возможное увеличение диапазона представимых значений); if; register (класс памяти. Переменная этого класса по возможности размещается в регистре общего назначения для ускорения доступа к ней); struct; switch (оператор выбора. В соответствии со значением условного выражения позволяет выбрать одну из нескольких альтернатив); union (объединение. Тип данных, предназначенных для хранения двух и более объектов по одному и тому же адресу); typedef (определение пользовательского типа); unsigned;void; while; do; double; sizeof (определение размера области памяти в байтах, занимаемой операндом).

Комментарии — это последовательность символов, которая воспринимается компилятором языка Си как отдельный пробельный символ и игнорируется. (либо // либо /* */)