Константы и literal в C++
Здравствуйте, будущие программисты! Сегодня мы отправляемся в увлекательное путешествие в мир констант и literal в C++. Не волнуйтесь, если эти термины кажутся вам немного пугающими - к концу этого урока вы будете использовать их, как профи! Погружаемся!
Что такое константы и literal?
Прежде чем углубиться в детали, давайте поймем, что такое константы и literal. Представьте их как "незменяемые" элементы вашего кода - например, количество дней в неделе или значение pi. Это надежные друзья, которые всегда остаются такими же, независимо от того, что происходит в вашей программе.
Integer Literals
Давайте начнем с чего-то знакомого - чисел! В C++, когда мы записываем целое число напрямую в нашем коде, мы называем его integer literal. Это как написать число на листе бумаги - просто и понятно.
int myAge = 25;
int numberOfPlanets = 8;
int negativeNumber = -10;
В этих примерах 25, 8 и -10 являются integer literal. Они просто сидят там, будучи числами, без каких-либо десятичных знаков или изысков.
Но подождите, есть больше! C++ позволяет нам записывать integer literal в различных��統ах счисления:
int decimalNumber = 42; // Десятичный (основание 10)
int octalNumber = 052; // Восьмеричный (основание 8) - начинается с 0
int hexNumber = 0x2A; // Шестнадцатеричный (основание 16) - начинается с 0x
int binaryNumber = 0b101010;// Двоичный (основание 2) - начинается с 0b (C++14 и далее)
Не волнуйтесь, если восьмеричный, шестнадцатеричный или двоичный seem confusing. Просто знайте, что они - разные способы представления одного и того же числа. Это как speak different languages - " сорок два ", "cuarenta y dos" и "quarante-deux" все значат одно и то же!
Floating-point Literals
Теперь добавим в смесь десятичные знаки! Floating-point literal - это числа с десятичными знаками или в научной записи.
float pi = 3.14159f;
double avogadroNumber = 6.022e23;
long double veryPreciseNumber = 1.23456789L;
Здесь 3.14159f - это float literal (обратите внимание на 'f' в конце), 6.022e23 - это double literal в научной записи (e23 означает ×10^23), а 1.23456789L - это long double literal (обратите внимание на 'L' в конце).
Boolean Literals
Boolean literal - это simplest из всех - их всего два!
bool isAwesome = true;
bool isBoring = false;
Вот и все! Просто true
и false
. Это как "да" и "нет" в программировании.
Character Literals
Character literal представляют собой single characters и enclosed в single quotes.
char firstInitial = 'J';
char newline = '\n';
char tab = '\t';
Last two examples show special characters: '\n' для new line и '\t' для tab. Эти称作 escape sequences.
String Literals
String literal - это sequences of characters, enclosed в double quotes.
std::string greeting = "Hello, World!";
std::string quote = "To be, or not to be, that is the question.";
Remember, strings используют double quotes, в то время как single characters используют single quotes!
Defining Constants
Теперь, когда мы знаем о literal, давайте посмотрим, как мы можем использовать их для создания констант - значений, которые не изменяются на протяжении всей нашей программы.
The #define Preprocessor
One way to define constants - это используя #define preprocessor directive:
#define PI 3.14159
#define MAX_STUDENTS 30
// Usage
double circleArea = PI * radius * radius;
if (numberOfStudents > MAX_STUDENTS) {
std::cout << "Class is full!";
}
The #define directive tells the compiler чтобы заменить every occurrence of PI с 3.14159 и MAX_STUDENTS с 30 before compiling the code.
The const Keyword
A более modern и preferred способ define constants - это используя const keyword:
const double PI = 3.14159;
const int MAX_STUDENTS = 30;
// Usage is the same as with #define
The const keyword tells the compiler что эти переменные cannot быть изменены после инициализации.
Putting It All Together
Давайте подведем итог с помощью небольшой программы, которая использует различные константы и literal:
#include <iostream>
#include <string>
#define GAME_NAME "C++ Adventure"
int main() {
const int MAX_LEVEL = 100;
const double XP_MULTIPLIER = 1.5;
int currentLevel = 1;
double currentXP = 0.0;
bool hasCompletedTutorial = false;
char playerRank = 'D';
std::string playerName = "Newbie";
std::cout << "Welcome to " << GAME_NAME << "!" << std::endl;
std::cout << "Player: " << playerName << std::endl;
std::cout << "Level: " << currentLevel << "/" << MAX_LEVEL << std::endl;
std::cout << "XP: " << currentXP << std::endl;
std::cout << "Rank: " << playerRank << std::endl;
std::cout << "Tutorial completed: " << (hasCompletedTutorial ? "Yes" : "No") << std::endl;
return 0;
}
Эта программа использует все типы констант и literal, о которых мы говорили. Она определяет имя игры с помощью #define, устанавливает максимальный уровень и множитель XP с помощью const и использует различные literal для инициализации statisticians игрока.
Conclusion
Поздравления! Вы только что сделали свои первые шаги в мир констант и literal в C++. Помните, это building blocks ваших программ - неизменные значения, которые вы будете использовать для создания удивительных вещей. По мере продолжения вашего путешествия в программировании вы найдете, что используете эти concepts каждый день. Keep practicing, stay curious, и счастливого кодирования!
Literal Type | Example | Description |
---|---|---|
Integer | 42, -10, 0, 1000 | Whole numbers |
Octal | 052, 077 | Base-8 numbers (start with 0) |
Hexadecimal | 0x2A, 0xFF | Base-16 numbers (start with 0x) |
Binary | 0b101010 | Base-2 numbers (start with 0b, C++14 onwards) |
Floating-point | 3.14, 2.5f, 1e10 | Numbers with decimal points or in scientific notation |
Boolean | true, false | Logical values |
Character | 'A', '\n', '\t' | Single characters or escape sequences |
String | "Hello", "C++" | Sequences of characters |
Credits: Image by storyset