Язык программирования Си для персонального компьютера
Шрифт:
Эти символы имеют специальный смысл для компилятора языка Си. Правила их использования описываются в дальнейших разделах руководства. Элементы множества представимых символов, которые не представлены в данном списке (в частности, русские буквы), могут быть использованы только в символьных строках, символьных константах и комментариях.
Специальные символы
Специальные символы предназначены для представления пробельных и неграфических символов в строках и символьных константах. Обычно они используются для спецификации таких действий, как возврат каретки и табуляция для терминалов и принтеров, а также для представления символов, имеющих особый смысл (например, двойная кавычка). Специальный символ состоит из обратного слэша, за которым следует либо буква, либо знаки пунктуации, либо комбинация цифр. В таблице 1.2 приведен список специальных символов языка Си.
В СП ТС шестнадцатеричное значение байта может задаваться не только как \х, но и как \Х.
В
Таблица 1.2.
Специальный символ | Шестнадцатеричное значение в коде ASCII | Наименование |
\n | ОА | Новая строка |
\t | 09 | Горизонтальная табуляция |
\v | 0В | Вертикальная табуляция |
\b | 08 | Забой |
\г | OD | Возврат каретки |
\f | ОС | Новая страница |
\а | 07 | Звуковой сигнал |
\’ | 2С | Апостроф |
\" | 22 | Двойная кавычка |
\\ | 5C | Обратный слэш |
\ddd | Байтовое значение в восьмеричном представлении | |
\xdd | Байтовое значение в шестнадцатеричном представлении |
Примечание. При работе с текстовым редактором ввод каждой строки завершается нажатием клавиши ENTER (ВВОД). Фактически при этом в текст вставляются два символа: возврат каретки и новая строка (с шестнадцатеричными значениями 0D и 0А в коде ASCII). Однако стандартные библиотечные функции ввода и вывода текстовой информации рассматривают эту пару символов как один символ — символ новой строки с шестнадцатеричным значением 0А. Этот символ представляется в символьных константах и символьных строках как \n. При чтении текстовой строки стандартные библиотечные функции заменяют упомянутую пару символов единственным символом новой строки, а при записи символа новой строки добавляют перед ним символ возврат каретки.
Если обратный слэш предшествует символу, не входящему в приведенный список, то обратный слэш игнорируется, а символ представляется обычным образом. Например, сочетание \h в строковой или символьной константе представляет символ h.
Конструкция \ddd позволяет задать произвольное байтовое значение как последовательность от одной до трёх восьмеричных цифр. Конструкция \xdd позволяет задать произвольное байтовое значение как последовательность от одной до двух шестнадцатеричных цифр, а для версии 5.0 СП MSC – до трех шестнадцатеричных цифр. Например, символ забой в коде ASCII может быть задан как \010 или \х08. Нулевой код может быть задан как \0 или \х0. В восьмеричном представлении байта могут быть заданы только восьмеричные цифры, причем по крайней мере одна цифра должна быть задана. Например, символ забой может быть задан как \10. Аналогично, в шестнадцатеричном представлении байта должна быть задана по крайней мере одна шестнадцатеричная цифра. Так, шестнадцатеричное представление символа забой может быть задано и как \х08, и как \х8.
Примечание. Если восьмеричное или шестнадцатеричное представление байта используется в составе строки, то рекомендуется полностью задавать все цифры представления. В противном случае, если символ, непосредственно следующий за представлением, случайно окажется восьмеричной или шестнадцатеричной цифрой, он будет интерпретироваться как часть этого представления. Например, в версии 4.0 СП MSC строка \х7Веll при выводе на печать будет выглядеть как {ell, поскольку \х7В проинтерпретируется как код левой фигурной скобки. Строка \х07Ве11 будет правильным представлением кода звукового сигнала с последующим словом Bell.
В СП ТС разбор конструкций, представляющих байтовое значение, реализован не вполне корректно; так, запись "\1234" считается ошибочной, хотя она представляет восьмеричное значение 123 и символ '4'.
Специальные символы
позволяют посылать неграфические управляющие последовательности на внешние устройства. Например, код \033 (символ ESC в коде ASCII) часто используется как первый символ команд управления терминалом и принтером.Помимо специальных символов, обратный слэш (\) используется также в качестве признака продолжения символьных строк и препроцессорных макроопределений. Если символ новой строки непосредственно следует за обратным слэшем, то комбинация "обратный слэш—символ новой строки" игнорируется и следующая строка рассматривается как продолжение предыдущей строки.
Операции
Операции — это комбинации символов, специфицирующие действия по преобразованию значений. Компилятор языка Си интерпретирует каждую из этих комбинаций как самостоятельную лексему.
В таблице 1.3. представлен список операций. Операции должны использоваться точно так, как они представлены в таблице,' без пробельных символов между символами в тех операциях, которые представлены несколькими символами.
Операция sizeof не включена в эту таблицу, поскольку задается ключевым словом, а не символом.
Таблица 1.3.
Операция | Наименование | Операция | Наименование |
! | Логическое НЕ | ^ | Поразрядное исключающее ИЛИ |
~ | Обратный код | && | Логическое И |
+ | Сложение; унарный плюс | || | Логическое ИЛИ |
– | Вычитание; унарный минус | ?: | Условная операция |
* | Умножение; косвенная адресация | ++ | Инкремент |
/ | Деление | – - | Декремент |
% | Остаток от деления | = | Простое присваивание |
<< | Сдвиг влево | += | Присваивание со сложением |
>> | Сдвиг вправо | – = | Присваивание с вычитанием |
< | Меньше | *= | Присваивание с умножением |
<= | Меньше или равно | /= | Присваивание с делением |
> | Больше | %= | Присваивание с остатком от деления |
>= | Больше или равно | >>= | Присваивание со сдвигом вправо |
== | Равно | <<= | Присваивание со сдвигом влево |
!= | Не равно | &= | Присваивание с поразрядным И |
& | Поразрядное И; адресация | |= | Присваивание с поразрядным включающим ИЛИ |
| | Поразрядное включающее ИЛИ | ^= | Присваивание с поразрядным исключающим ИЛИ |
, | Последовательное выполнение (запятая) |
Примечание. Условная операция ?: является не двухсимвольной, а тернарной (трехоперандной) операцией. Она имеет следующий формат: <операнд1> ? <операнд2> : <операнд3>
Константы
Константа — это число, символ или строка символов. Константы используются в программе для задания постоянных величин. В языке Си различают четыре типа констант: целые, с плавающей точкой, символьные константы и символьные строки.
Целые константы
Целая константа — это десятичное, восьмеричное или шестнадцатеричное число, которое представляет целое значение. Десятичная константа имеет следующий формат представления:
<цифры>
<цифры> — последовательность из одной или более десятичных цифр от 0 до 9.
Восьмеричная константа имеет следующий формат представления:
0<в-цифры>