Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_по_пяву_4.doc
Скачиваний:
101
Добавлен:
15.03.2015
Размер:
1.29 Mб
Скачать
  1. Литералы

Литералы или константы предназначены для представления фиксированных значений. В языке Си различают две категории констант:

● Явные константы или литералы

● Символические константы.

Явная константа – это константа, тип и значение которой определяются ее записью. Явные константы в языке Си часто называют литералами. Литерал относится к категории лексем. Особенность литералов состоит в том, что они не являются объектами. Например, 2 – это явная константа (литерал) целого типа.

Символическая константа в программе представлена своим именем. При выборе этого имени следует руководствоваться соображениями повышения читабельности программы. С учетом этого имя символической константы должно раскрыть ее назначение. Символическую константу в языке Си можно определить, например, с помощью директивы препроцессора define. В данном разделе рассматриваются только явные константы. Рассмотрим константы, относящиеся к различным типам данных. Начнем с целочисленных констант.

    1. Целочисленные литералы

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

● Восьмеричной,

● Десятичной,

● Шестнадцатеричной.

По умолчанию используется десятичная система счисления. Для указания на систему счисления, отличную от десятичной системы, литерал должен быть снабжен префиксом. Для указания на восьмеричную систему счисления следует в качестве такого префикса использовать цифру нуль, а для работы с шестнадцатеричной системой следует использовать один из двух возможных префиксов: 0x или 0X.

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

● Для литералов, относящихся к типу long, - символ l или L,

● Для литералов, относящихся к типу long long, – символы ll или LL,

● Для литералов, относящихся к беззнаковым типам – символ u или U.

Суффиксы, относящиеся к беззнаковым типам, могут комбинироваться с суффиксами, используемыми при записи литералов типа longиlonglong.

Литералами считаются только положительные числа. Наличие перед числовым литералом знака минус рассматривается как применение унарного оператора минус “-”.

Ниже приводятся примеры целочисленных констант.

Константа

Пояснение

020

Восьмеричная константа. Десятичное значение равно 16

0x25

Шестнадцатеричная константа. Десятичное значение равно 37.

2U

Десятичная константа типа unsigned int(или простоunsigned)

0L

Десятичная константа типа long int(или простоlong)

    1. Литерал вещественного типа

В общем случае константа вещественного типа состоит из следующих структурных частей:

● мантисса,

● экспоненциальная часть,

● суффикс, определяющий тип константы.

Если экспоненциальная часть отсутствует, мантисса должна содержать десятичную точку. Экспоненциальная часть, если она присутствует в вещественной константе, должна начинаться либо с символа “e”, либо с символа “E”, за которым должен следовать целочисленный порядок. Экспоненциальная часть может содержать знак. Суффикс F (или f) указывает, что константа имеет тип float; использование суффикса L (или l) свидетельствует о том, что константа имеет типlong double. При отсутствии суффикса константа имеет типdouble. Ниже приводятся примеры вещественных констант. Численное значение вещественной константы при наличии экспоненциальной части определяется умножением мантиссы на десять в степени, определяемой величиной порядка.

Константа

Тип

3.14159

double

.25

double

23.

double

4e2

double Значение константы равно 4 * 102

.5E-3

double Значение константы равно 0.5 * 10-3

2.4f

float

5.5L

long double