Литералы в C/C++ с примерами

Опубликовано: 10 Января, 2023

Литералы — это постоянные значения, которые присваиваются константным переменным. Литералы представляют собой фиксированные значения, которые нельзя изменить. Литералы содержат память, но не имеют ссылок в качестве переменных. Как правило, термины, константы и литералы взаимозаменяемы.

Например, «const int = 5;» — это константное выражение, а значение 5 упоминается как постоянный целочисленный литерал. Есть 4 типа литералов в C и пять типов литералов в C++.

  • Целочисленный литерал
  • Литерал с плавающей запятой
  • Символьный литерал
  • Строковый литерал

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

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

A) Префиксы: Префикс целочисленного литерала указывает базу, в которой он должен быть прочитан.

Например:

0x10 = 16

Because 0x prefix represents a HexaDecimal base. So 10 in HexaDecimal is 16 in Decimal. Hence the value 16.

В основном представлены 4 типами:

а. Десятичный литерал (основание 10): ненулевая десятичная цифра , за которой следует ноль или более десятичных цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9).

Пример:

56, 78

б. Восьмеричный литерал (основание 8): 0 , за которым следует ноль или более восьмеричных цифр (0, 1, 2, 3, 4, 5, 6, 7).

Пример:

045, 076, 06210

в. Шестнадцатеричный литерал (основание 16): 0x или 0X , за которым следует одна или несколько шестнадцатеричных цифр (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, A, b, B, c, C , г, г, д, д, е, е).

Пример:

0x23A, 0Xb4C, 0xFEA

д. Двоичный литерал (основание 2): 0b или 0B , за которыми следует одна или несколько двоичных цифр (0, 1).

Пример:

0b101, 0B111

B) Суффиксы: префикс целочисленного литерала указывает тип, в котором он должен быть прочитан.

Например:

12345678901234LL 

indicates a long long integer value 12345678901234 because of the suffix LL

Они представлены разными способами в соответствии с их типами данных.

  • int: суффикс не требуется, поскольку целочисленная константа по умолчанию назначается как тип данных int.
  • unsigned int: символ u или U в конце целочисленной константы.
  • long int: символ l или L в конце целочисленной константы.
  • unsigned long int: символ ul или UL в конце целочисленной константы.
  • long long int: символ ll или LL в конце целочисленной константы.
  • unsigned long long int: символ ull или ULL в конце целочисленной константы.

Пример:

Выход:

Integer Literal:10

2) Литералы с плавающей запятой

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

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

Несколько литеральных представлений с плавающей запятой показаны ниже:

Допустимые плавающие литералы:

10.125
1.215-10L
10.5E-3

Недопустимые плавающие литералы:

123E
1250f
0.e879

Пример:

Выход:

Floating point literal: 4.14

3) Символьный литерал

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

A. тип char: используется для хранения литералов с обычными символами или литералов с узкими символами. Это поддерживается как C, так и C++.

Пример:

// For C
char chr = "G";

// For C++
char chr = "G";

B. Тип wchar_t: этот литерал поддерживается только в C++, но не в C. Если за символом следует L, то литерал необходимо сохранить в wchar_t. Это представляет собой широкосимвольный литерал.

Пример:

// Not Supported For C

// For C++
wchar_t chr = L"G";

Пример:

Выход:

Character Literal: A

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

4) Строковые литералы

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

Пример:

// For C
char stringVal[] = "GeeksforGeeks";

// For C++
string stringVal = "GeeksforGeeks"

Пример:

Выход:

Welcome
To
Geeks    For    Geeks

5) Логические литералы

Этот литерал предоставляется только в C++ , но не в C. Они используются для представления логических типов данных. Они могут иметь два значения:

  • true: для представления истинного значения. Это не должно считаться равным int 1.
  • false: для представления значения False. Это не должно считаться равным int 0.

Пример:

Выход:

isTrue? 1
isFalse? 0

Должны прочитать:

  • Пользовательские литералы
  • Необработанный строковый литерал в C++
  • Восьмеричные литералы в C
  • Составные литералы в C
  • Разница типов символьных литералов C++
C++ C