Литералы — что это в программировании
Литералы — некие фиксированные данные в программном коде.
В этом отличие литералов от переменных, которые как бы являются лишь именами (внешней стороной) для данных и могут менять своё содержимое. Так, например, футбольная команда может набирать новых игроков в свой состав, но имя команды остаётся неизменным. Имя команды в данном случае подобно имени переменной, конкретные же игроки или конкретные составы команды — подобны фиксированным данным — литералам.
Примеры литералов в коде
Литералы бывают строковыми, например, напечатаем строку, т.е. строковый литерал (далее код в стиле Паскаль):
write('ВГУ Воронеж');
— здесь литером являются текстовые данные, т.е. строка ВГУ Воронеж.
Или сложим значение числового литерала 5 и переменной x и присвоим их сумму переменной y:
y := x + 5;
Key Words for FKN + antitotal forum (CS VSU):
- Литералы программирование инфоматика что это такое
- литерал
- стороковый литерал
- числовой литерал
- что это такое
Литерал (информатика)
Литерал (англ. literal — константа) — запись в исходном коде компьютерной программы, представляющая собой фиксированное значение [1] .
Описание
Литералы представляют собой константы, непосредственно включаемые в текст программы в отличие от прочих данных — констант и переменных, обращение к которым осуществляется посредством ссылок [1] . Литералы не могут быть изменены в тексте программы.
В следующем примере 1 и Кот это литералы, а a1, c и cat — переменные:
int a1=1; int c=a1; string cat="Кот";
Литерал в языке Python — это выражение, создающее объект.
Типы литералов
Почти все языки программирования допускают использование литералов элементарных типов. Однако, использование различных типов литералов, а также их запись в программах отличается.
Обычно выделяют следующие элементарные типы литералов:
Числовые литералы — литералы, для записи чисел. Иногда, числовые литералы детализируются целые литералы, дробные литералы, с различной точностью представления и записанные в различной системе счисления (например, битовые литералы в PL/I). Обычно, в программах числовые литералы записываются непосредственно числом. В следующем примере 100 и 3.1415 — числовые литералы:
int a=100; float b=3.1415;
Строковые литералы, обычно, представляют собой строку символов, заключённую в кавычки или скобки. Иногда выделяют, также, символьные литералы, включающие один символ. В разных языках программирования допускаются различные типы кавычек. Например, в следующем примере на языке JavaScript один и два — строковые литералы записанные с использованием различных допустимых типов кавычек:
var one="один"; var two='два';
Логические литералы, Логические значения — два литерала: true и false или их аналоги — T, t, Y, y, F, f, N, n, NIL и т. п.. Например:
bool t=true; bool f=false;
Литерал ссылочного типа, адрес в памяти — обычно, числовые литералы, указывающие на ячейку в памяти.
Null-литерал, Пустое значение — особый тип литерала, в зависимости от языка программирования, относящийся к ссылочному либо объектному типу. Единственное допустимое значение этого типа литералов null, или аналог, например NIL, None, Nothing — ссылка никуда не ведёт либо объект отсутствует.
T o=null;
Регулярные выражения. В некоторых языках программирования регулярные выражения представляют собой литерал особого типа для поиска по шаблону [2] . Например:
/javascript/gi
В некоторых объектно ориентированных языках программирования (например, ECMAScript v3) допускается использовать выражения, которые служат массивами-литералами и объектами-литералами [2] . Например:
[1,2,3,4,5] // Инициализатор массива // Инициализатор объекта
Иногда анонимные функции относят к литералам-функциям, а анонимные объекты к литералам-объектам.
Примечания
- ↑ 12 Статья literal в Энциклопедии PC Magazine
- ↑ 12 Флэнаган Д. JavaScript. Подробное руководство. — Пер. с англ. — СПб: Символ-Плюс, 2008. — 992 с., ил.
Ссылки
- Literals (англ.)
Литералы в программировании
Литералы используются в тексте программы для обозначения числовых значений, строк, символов или логических констант. Другими словами литерал представляет собой постоянное значение, у которого нет имени.
Целочисленные литералы состоят из цифр от 0 до 9 со знаком + , — или без знака. Например, +25, –7, 553. Литералы с плавающей точкой могут быть записаны в виде целой и дробной частей, разделенных точкой (целая часть может отсутствовать, если она равна 0, если дробная часть равна 0, то после точки должен быть записан 0) или в экспоненциальной форме (вместо основания степени 10 используется e или E). Например, 8.1, 0.2, 3.0, –5.3E–1, 5e4.
Строковые литералы используются для представления текстовых строк. Это строка символов, заключенная в кавычки. Например, «Город Симферополь» или «Результаты вычислений». С помощью символа \ (обратный слеш) можно указать некоторые специальные и управляющие символы. Последовательность и следующего за ним символа называется управляющей последовательностью. Например, наличие в строке последовательности \n означает переход на новую строку, \t – горизонтальная табуляция, \\ — обратный слеш, \» — двойная кавычка и т.п. Символьные литералы используются для представления одиночных символов (заключаются в одинарные кавычки). Например:
char symbol = 'x';
Литералы для представления логических значений: true , false . Ключевое слово null является литералом, представляющим пустую ссылку, которая не ссылается ни на один объект.
К сожалению, для данной темы пока нет подходящих задач. Если у вас есть таковые на примете, отправте их по адресу: admin@cppstudio.com. Мы их опубликуем!
Числовые, логические литералы и литералы-указатели
Литерал — это элемент программы, который непосредственно представляет значение. В этой статье рассматриваются литералы целочисленного типа, с плавающей запятой, логическое значение и указатель. Сведения о строковых и символьных литералах см. в разделе «Строковые и символьные литералы» (C++). Вы также можете определить собственные литералы на основе любой из этих категорий. Дополнительные сведения см. в разделе «Определяемые пользователем литералы» (C++).
Литералы можно использовать во многих контекстах, но наиболее часто они используются для инициализации именованных переменных и для передачи аргументов в функции.
const int answer = 42; // integer literal double d = sin(108.87); // floating point literal passed to sin function bool b = true; // boolean literal MyClass* mc = nullptr; // pointer literal
Иногда важно указывать компилятору, как следует обрабатывать литерал или какой конкретный тип ему предоставить. Это делается путем добавления префиксов или суффиксов к литералу. Например, префикс 0x сообщает компилятору интерпретировать число, которое следует за ним как шестнадцатеричное значение, например 0x35 . Суффикс ULL сообщает компилятору рассматривать значение как unsigned long long тип, как в 5894345ULL . Полный список префиксов и суффиксов для каждого типа литерала см. в следующих разделах.
Целочисленные литералы
Целочисленные литералы начинаются с цифры и не имеют дробных частей или экспонент. Целочисленные литералы можно указать в десятичной, двоичной, восьмеричной или шестнадцатеричной форме. При необходимости можно указать целый литерал без знака, а также длинный или длинный тип с помощью суффикса.
Если префикс или суффикс отсутствует, компилятор даст целочисленному литеральному типу (32 бита), если значение будет соответствовать, в противном случае он даст ему тип int long long (64 бита).
Чтобы указать десятичный целочисленный литерал, начинайте спецификацию с любой цифры, кроме нуля. Например:
int i = 157; // Decimal literal int j = 0198; // Not a decimal number; erroneous octal literal int k = 0365; // Leading zero specifies octal literal, not decimal int m = 36'000'000 // digit separators make large values more readable
Чтобы указать восьмеричный целочисленный литерал, начинайте спецификацию с нуля, за которым следует ряд цифр в диапазоне от 0 до 7. Цифры 8 и 9 при указании восьмеричного литерала будут ошибками. Например:
int i = 0377; // Octal literal int j = 0397; // Error: 9 is not an octal digit
Чтобы указать шестнадцатеричный целочисленный литерал, начните спецификацию с 0x или (в случае «x» не имеет значения), за которой следует последовательность цифр в диапазоне 0 и a 9 (или) через f (или F A 0X ). Шестнадцатеричные цифры от a (или A ) до f (или F ) представляют собой значения в диапазоне от 10 до 15. Например:
int i = 0x3fff; // Hexadecimal literal int j = 0X3FFF; // Equal to i
Чтобы указать неподписанный тип, используйте u или U суффикс. Чтобы указать длинный тип, используйте l либо суффикс L . Для указания 64-разрядного целочисленного типа используется суффикс LL или ll. Суффикс i64 по-прежнему поддерживается, но мы не рекомендуем его. Он зависит от Корпорации Майкрософт и не переносим. Например:
unsigned val_1 = 328u; // Unsigned value long val_2 = 0x7FFFFFL; // Long value specified // as hex literal unsigned long val_3 = 0776745ul; // Unsigned long value auto val_4 = 108LL; // signed long long auto val_4 = 0x8000000000000000ULL
Разделители цифр: вы можете использовать символ с одним кавычками (apostrophe) для разделения значений в больших числах, чтобы упростить чтение для людей. Разделители не влияют на компиляцию.
long long i = 24'847'458'121;
Литералы с плавающей запятой
Литералы с плавающей запятой задают значения, которые должны иметь дробную часть. Эти значения содержат десятичные знаки ( . ) и могут содержать экспоненты.
Литералы с плавающей запятой имеют символику (иногда называемую мантиссой), которая задает значение числа. Они имеют экспонент, который указывает величину числа. И у них есть необязательный суффикс, указывающий тип литерала. Знак указывается в виде последовательности цифр, за которым следует период, за которым следует необязательная последовательность цифр, представляющая дробную часть числа. Например:
18.46 38.
Если указан показатель степени, он задает порядок числа в виде степени 10, как показано в следующем примере:
18.46e0 // 18.46 18.46e1 // 184.6
Экспонент может быть указан с помощью e или E , которые имеют то же значение, за которым следует необязательный знак (+ или -) и последовательность цифр. Если указан показатель степени, десятичная точка в конце целых чисел не требуется, например 18E0 .
Литералы с плавающей запятой по умолчанию для типа double . Используя суффиксы f или или F l L (суффикс не учитывает регистр), литерал можно указать как float или. long double
Хотя long double и double имеют то же представление, они не одинаковы. Например, у вас могут быть перегруженные функции, такие как
void func( double );
void func( long double );
логические литералы
Логические литералы и true false .
Литерал-указатель (C++11)
C++ вводит nullptr литерал для указания указателя с нулевой инициализацией. В переносимом коде nullptr следует использовать вместо целочисленного нуля или макросов, таких как NULL .
Двоичные литералы (C++14)
Двоичный литерал можно задать с помощью префикса 0B или 0b и последовательности, состоящей из 1 и 0:
auto x = 0B001101 ; // int auto y = 0b000001 ; // int
Избегайте использования литералов как «магических констант»
Несмотря на то что это не всегда является хорошим стилем программирования, можно использовать литералы непосредственно в выражениях и операторах:
if (num < 100) return "Success";
В предыдущем примере рекомендуется использовать именованную константу, которая передает четкое значение, например "MAXIMUM_ERROR_THRESHOLD". И если возвращаемое значение "Success" отображается конечными пользователями, возможно, лучше использовать именованную константу строки. Строковые константы можно хранить в одном расположении в файле, который можно локализовать на других языках. Использование именованных констант помогает и себе, и другим пользователям понять намерение кода.