2.3. Константы.
Константы типа INT и FLOAT мы уже рассмотрели. Отметим
еще только, что как обычная
123.456е-7,
так и “научная” запись
0.12е3
для FLOAT является законной.
Каждая константа с плавающей точкой считается имеющей
тип DOUBLE, так что обозначение “E” служит как для FLOAT,
так и для DOUBLE.
Длинные константы записываются в виде 123L. Обычная це-
лая константа, которая слишком длинна для типа INT, рассмат-
ривается как LONG.
·
41 -
Существует система обозначений для восьмеричных и шест-
надцатеричных констант: лидирующий 0(нуль) в константе типа
INT указывает на восьмеричную константу, а стоящие впереди
0X соответствуют шестнадцатеричной константе. Например, де-
сятичное число 31 можно записать как 037 в восьмеричной фор-
ме и как 0X1F в шестнадцатеричной. Шестнадцатеричные и вось-
меричные константы могут также заканчиваться буквой L, что
делает их относящимися к типу LONG.
2.3.1. Символьная константа.
Символьная константа - это один символ, заключенный в
одинарные кавычки, как, например, 'х'. Значением символьной
константы является численное значение этого символа во внут-
реннем машинном наборе символов. Например, в наборе символов
ASCII символьный нуль, или '0', имеет значение 48, а в коде
EBCDIC - 240, и оба эти значения совершенно отличны от числа
0. Написание '0' вместо численного значения, такого как 48
или 240, делает программу не зависящей от конкретного чис-
ленного представления этого символа в данной машине. Сим-
вольные константы точно так же участвуют в численных опера-
циях, как и любые другие числа, хотя наиболее часто они ис-
пользуются в сравнении с другими символами. Правила преобра-
зования будут изложены позднее.
Некоторые неграфические символы могут быть представлены
как символьные константы с помощью условных последователь-
ностей, как, например, \N (новая строка), \T (табуляция), \0
(нулевой символ), \\ (обратная косая черта), \' (одинарная
кавычка) и т.д. Хотя они выглядят как два символа, на самом
деле являются одним. Кроме того, можно сгенерировать произ-
вольную последовательность двоичных знаков размером в байт,
если написать
'\DDD'
где DDD - от одной до трех восьмеричных цифр, как в
#DEFINE FORMFEED '\014' /* FORM FEED */
Символьная константа '\0', изображающая символ со значе-нием 0, часто записывается вместо целой константы 0 , чтобы подчеркнуть символьную природу некоторого выражения.
2.3.2. Константное выражение
Константное выражение - это выражение, состоящее из од-
них констант. Такие выражения обрабатываются во время компи-
ляции, а не при прогоне программы, и соответственно могут
быть использованы в любом месте, где можно использовать кон-
станту, как, например в
· 42 -
#DEFINE MAXLINE 1000
CHAR LINE[MAXLINE+1];
или
SECONDS = 60 * 60 * HOURS;
2.3.3. Строчная константа
Строчная константа - это последовательность, состоящая
из нуля или более символов, заключенных в двойные кавычки,
как, например,
“I AM A STRING” /* я - строка */
или
“” /* NULL STRING / / нуль-строка */
Кавычки не являются частью строки, а служат только для
ее ограничения. те же самые условные последовательности, ко-
торые использовались в символьных константах, применяются и
в строках; символ двойной кавычки изображается как \”.
С технической точки зрения строка представляет собой
массив, элементами которого являются отдельные символы. Что-
бы программам было удобно определять конец строки, компиля-
тор автоматически помещает в конец каждой строки нуль-символ
\0. Такое представление означает, что не накладывается конк-
ретного ограничения на то, какую длину может иметь строка, и
чтобы определить эту длину, программы должны просматривать
строку полностью. При этом для физического хранения строки
требуется на одну ячейку памяти больше, чем число заключен-
ных в кавычки символов. Следующая функция STRLEN(S) вычисля-
ет длину символьной строки S не считая конечный символ \0.
STRLEN(S) /* RETURN LENGTH OF S */
CHAR S[];
{
INT I;
I = 0;
WHILE (S[I] != '\0')
++I;
RETURN(I);
}
Будьте внимательны и не путайте символьную константу со
строкой, содержащей один символ: 'X' - это не то же самое,
что “X”. Первое - это отдельный символ, использованный с
целью получения численного значения, соответствующего букве
х в машинном наборе символов. Второе - символьная строка,
состоящая из одного символа (буква х) и \0.
· 43 -
... основаниям. При этом философская абстракция языка оказывается неразрывно связана с основными темами и движениями философии в целом. Более конкретно, на ранние стадии традиционно рассматриваемого в рамках АФ анализа обыденного языка глубокое влияние оказала философия Дж. Э. Мура, особенно его учение о здравом смысле, согласно которому такие понятия, как «человек», «мир», «я», «внешний мир», « ...
... и других странах СНГ, а также облегчение доступа к русской и мировой культуре и науке. Таким образом, судя по данным наших исследований, востребованность русского языка осталась в республике достаточно высокой. Многие представители современной молдавской молодежи продолжают, как их отцы и деды, тянуться к русской культуре, научным и техническим достижениям России. Русский язык остается языком ...
... рисуночное словесно-слоговое письмо). Памятники среднеэламского периода (14—12 вв. до н.э.) выполнены аккадской клинописью. Памятники новоэламского периода относятся к 8—6 вв. до н.э. Был официальным языком в персидском государстве Ахеменидов в 6—4 вв. предполагается, что он, подвергшись влиянию древнеперсидского, сохранился до раннего средневековья. 7. Бурушаски язык Язык бурушаски ( ...
... /диалект), скифский, согдийский, среднеперсидский, таджикский, таджриши (язык/диалект), талышский, татский, хорезмийский, хотаносакский, шугнано-рушанская группа языков, ягнобский, язгулямский и др. Они относятся к индоиранской ветви индоевропейских языков. Области распространения: Иран, Афганистан, Таджикистан, некоторые районы Ирака, Турции, Пакистана, Индии, Грузии, Российской Федерации. Общее ...
0 комментариев