Литералы - это фиксированные значения, которые напрямую представлены в коде программы. Они не требуют вычислений и используются для присваивания значений переменным или в выражениях.
Основные типы литералов
1. Целочисленные литералы
int decimalLiteral = 42; // десятичный
int octalLiteral = 052; // восьмеричный (начинается с 0)
int hexadecimalLiteral = 0x2A; // шестнадцатеричный (начинается с 0x)
int binaryLiteral = 0b101010; // двоичный (C++14, начинается с 0b)
2. Литералы с плавающей точкой
float f = 3.14f; // суффикс f для float
double d = 3.14; // по умолчанию double
long double ld = 3.14L; // суффикс L для long double
3. Символьные литералы
char c = 'A'; // одиночный символ
char newline = '\n'; // escape-последовательность
4. Строковые литералы
const char* str = "Hello, World!";
5. Логические литералы
bool t = true;
bool f = false;
Суффиксы литералов
Суффикс | Тип |
---|---|
u or U | unsigned int |
l or L | long |
ul or UL | unsigned long |
ll or LL | long long |
ull or ULL | unsigned long long |
f or F | float |
l or L | long double |
Пользовательские литералы (C++11)
C++11 ввел возможность определять пользовательские литералы:
// Определение пользовательского литерала для километров
constexpr long double operator"" _km(long double x) {
return x * 1000.0; // преобразование в метры
}
// Использование
auto distance = 5.5_km; // distance будет 5500 метров
Заключение
Литералы - важная часть языка C++, позволяющая напрямую представлять значения в коде. Правильное использование литералов и понимание их типов помогает писать более читаемый и эффективный код.