Курс лекций - Микропроцессоры

         

Константы


В языке программирования С разделяют четыре типа констант: целые и константы, константы с , и литеральные строки.

Константа может быть представлена в десятичной, восьмеричной или шестнадцатеричной форме.

Десятичная константа состоит из одной или нескольких десятичных цифр, причем первая цифра не может быть нулем (иначе число будет воспринято как восьмеричное).

Восьмеричная константа состоит из обязательного нуля и одной или нескольких восьмеричных цифр (среди цифр должны отсутствовать цифры восемь и девять, так как эти цифры не входят в восьмеричную систему счисления).

Шестнадцатеричная константа начинается с обязательной последовательности символов 0х или 0Х и содержит одну или несколько шестнадцатеричных цифр (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

Примеры целых констант: Десятичная Восьмеричная Шестнадцатеричная константа константа константа 16 020 0x10 127 0117 0x2B 240 0360 0XF0

Если требуется сформировать отрицательную целую константу, то используют знак "-" перед записью константы (который будет называться унарным минусом). Например: -0x2A, -088, -16 .

Каждой целой константе присваивается тип, определяющий преобразования, которые должны быть выполнены, если константа используется в выражениях. Тип константы определяется следующим образом:

- десятичные константы рассматриваются как , и им присваивается тип int (целая) или long (длинная целая) в соответствии со значением константы. Если константа меньше 32768, то ей присваивается тип int в противном случае long.

- восьмеричным и шестнадцатеричным константам присваивается тип int, unsigned int (беззнаковая целая), long или unsigned long в зависимости от значения константы согласно табл 5.

Таблица 5

Диапазон шестнадцатеричных константДиапазон восьмеричных константТип

0x0 - 0x7FFF 0 - 077777 int
0X8000 - 0XFFFF 0100000 - 0177777 unsigned int
0X10000 - 0X7FFFFFFF 0200000 - 017777777777 long
0X80000000 - 0XFFFFFFFF 020000000000 - 037777777777 unsigned long

Для того чтобы любую целую константу определить типом long, достаточно в конце константы поставить букву "l" или "L".
Пример:
5l, 6l, 128L, 0105L, OX2A11L.
Константа с плавающей запятой - десятичное число, представленное в виде действительного числа с десятичной запятой и порядком числа. Формат записи константы с плавающей запятой:
[ цифры ].[ цифры ] [ Е|e [+|-] цифры ] .
состоит из целой и дробные части и (или) порядка числа. Константы с плавающей запятой представляют собой положительные числа двойной точности (имеют тип double). Для определения отрицательной величины необходимо сформировать константное выражение, состоящее из знака минуса и положительной константы.
Примеры: 115.75, 1.5Е-2, -0.025, .075, -0.85Е2
- представляется символом заключенном в апострофы. Управляющая последовательность рассматривается как одиночный символ, ее допустимо использовать в символьных константах. Значением символьной константы является числовой код символа. Примеры:
' '- пробел ,
'Q'- буква Q ,
'\n' - символ новой строки ,
'\\' - обратная дробная черта ,
'\v' - вертикальная табуляция .
Символьные константы имеют тип int и при преобразовании типов дополняются знаком.
Строковая константа (литерал или литеральная строка) - последовательность символов (включая строковые и прописные буквы русского и латинского а также цифры) заключенные в кавычки ("). Например: "Школа N 35", "город Тамбов", "YZPT КОД".
Отметим, что все управляющие символы, кавычка ("), обратная дробная черта (\) и символ новой строки в строковом литерале и в символьной константе представляются соответствующими управляющими последовательностями. Каждая управляющая последовательность представляется как один символ. Например, при печати литерала "Школа \n N 35" его часть "Школа" будет напечатана на одной строке, а вторая часть "N 35" на следующей строке.
Символы литеральной строки сохраняются в оперативной памяти. В конец каждой литеральной строки компилятором добавляется нулевой символ, который можно записать как: "\0".
Литеральная строка рассматривается как массив символов (char[ ]).


Отметим важную особенность, число элементов массива равно числу символов в строке плюс 1, так как нулевой символ (символ конца строки) также является элементом массива. Все литеральные строки рассматриваются компилятором как различные объекты. Одна литеральная строка может выводиться на дисплей как несколько строк. Такие строки разделяются при помощи обратной дробной черты и символа возврата каретки \n. На одной строке исходного текста программы можно записать только одну литеральную строку. Если необходимо продолжить написание одной и той же литеральной строки на следующей строке исходного текста, то в конце строки исходного текста можно поставить обратную строку. Например исходный текст:
"строка неопределенной \
длины"
полностью идентичен литеральной строке:
"строка неопределенной длины".
Однако более удобно для объединения литеральных строк использовать символ (символы) пробела. Если в программе встречаются два или более литерала, разделенные только пробелами или символами табуляции, то они будут рассматриваться как одна литеральная строка. Этот принцип можно использовать для формирования литералов, занимающих более одной строки.

Содержание раздела