1. Переменные и коробки
Переменные — это такие специальные штуки для хранения данных. Любых данных. Почти все данные в C++ так или иначе оказываются в переменных. Больше всего переменная по смыслу напоминает коробку: самую обычную коробку.
Допустим, вы написали на листке число 13 и положили этот лист в коробку. Теперь мы можем говорить, что «коробка хранит значение 13».
Каждая переменная в C++ имеет три важных свойства: тип, имя и значение.
Имя используется для того, чтобы отличать одну переменную от другой. Это как надпись на коробке.
Тип переменной определяет тип значений/данных, которые в ней можно хранить. В коробке для торта храним торт, в коробке для обуви — туфли, и т.д.
Значение — это некий объект, данные или информация, которая хранится в переменной.
Каждый объект в языке C++ имеет свой тип. Например, могут быть такие типы данных: целое число, дробное число, текст, тип Cat, тип House и т.д.
У каждой переменной (коробки) тоже есть свой тип. Переменная может хранить значения только того же типа, что и она сама. Разные коробки используются для хранения различных вещей: коробка конфет, коробка для десятка яиц и т.п. Все как в жизни.
2. Создание переменной
В языке C++ для того, чтобы создать переменную, используется команда вида:
тип имя;
Где тип — это тип переменной (совпадает с типом значений, которые переменная сможет хранить). А имя — это имя переменной.
Примеры:
| Создание переменной: сначала тип, затем имя. | Описание |
|---|---|
|
Создаем переменную по имени a типа int. |
|
Создаем переменную по имени s типа std::string. |
|
Создаем переменную по имени c типа double. |
Два самых часто используемых типа — это целые числа (обозначаются словом int) и текст (в C++ обычно используют std::string). Также популярен тип double — это дробные (вещественные) числа.
3. Присваивание
Как уже говорилось выше, у переменной есть имя, тип и значение. Имя и тип мы уже разобрали, а что насчет значения? Как занести значение в переменную?
Чтобы занести значение в переменную, существует специальная операция — операция присваивания. Она копирует значение из одной переменной в другую. Не переносит, а именно копирует. Как файл на диске. Выглядит это присваивание так:
имя = значение;
Где имя — это имя переменной, а значение — это значение, которое будет занесено в переменную. В качестве значения может фигурировать конкретное значение, имя другой переменной или даже какое-нибудь выражение с использованием переменных.
Примеры:
int main() {
int i; // Создается переменная i
int a, b; // Создаются переменные a, b
int x; // Создается переменная x
i = 3; // В переменную i заносится значение 3.
a = 1; // В переменную a заносится значение 1.
b = a + 1; // В переменную b заносится значение 2.
x = 3; // В переменную x заносится значение 3.
x = x + 1; // В этой строке значение x увеличивается на 1, x теперь равен 4.
}
Символ равно
Для операции присваивания используется символ равно =. Это не сравнение, не равенство. Это именно команда копирования значения справа от знака равно в переменную, которая слева. Для сравнения в языке C++ используется двойное равно ==.
4. Имя переменной: что можно, а что нельзя
Вот какие факты вам полезно будет знать при создании переменных:
- Имя переменной может быть любым (например, temperature, score, userAge).
- Но есть ограничения — оно не может начинаться с цифры, и не может совпадать со служебными словами C++ (например, нельзя назвать переменную int или if).
- Не может содержать специальные символы, кроме _.
- В имени важна разница между строчными и прописными буквами (Age и age — разные переменные).
- Обычно используют стиль camelCase: первая буква маленькая, дальше — каждое слово с заглавной (userAge, maxScore).
Примеры разрешенных имен:
#include <string>
int main() {
int x123 = 1;
std::string koteyka;
double PI = 3.14;
std::string MAIN_PATH = "c:/";
}
Примеры запрещенных имен:
int 1first = 1; // имя не может начинаться с цифры
int number# = 25; // символ # нельзя использовать в имени
std::string name" = "John"; // кавычки в имени недопустимы
double pi+e = 5.123'; // имя не может содержать +
Все остальное вы узнаете в будущих лекциях. А теперь вопрос на логику: за сколько шагов можно поймать кота в коробку?
5. Коты и коробки
Как поймать кота:
- Возьмите пустую коробку.
- Ждите.
Шутка 🙂
Ну, может, в коробку и можно запихнуть сколько угодно котов, но вот в переменную можно положить только одно значение. С чем и будет связаны задачи в конце лекции.
6. Краткая история C++
Чтобы понять некоторые вещи в C++, нужно немного вернуться назад — к языку C.
Язык C появился в начале 1970-х годов в Bell Labs. Его создал Деннис Ритчи. Это был компактный, быстрый и очень практичный язык, который позволял писать системные программы и даже операционные системы. Он давал программисту много контроля над памятью и устройством программы. Именно поэтому C стал фундаментом для огромного количества технологий.
В начале 1980-х Бьёрн Страуструп решил расширить C и добавить в него новые возможности, прежде всего поддержку классов. Сначала язык назывался “C with Classes”, а позже получил имя C++. Идея была простой: сохранить эффективность C, но сделать язык удобнее для создания больших и сложных программ.
С тех пор C++ развивался почти 50 лет. Он регулярно обновляется, и каждая новая версия стандарта добавляет новые возможности. Сегодня существуют стандарты C++11, C++14, C++17, C++20, C++23 — и работа над следующими версиями уже идёт. В результате язык стал очень мощным и многогранным.
Однако в C++ нередко можно встретить несколько способов сделать одно и то же. Например, даже инициализировать переменную можно по-разному:
int a = 5;
int b(5);
int c{5};
Все три варианта корректны — просто появились они в разные периоды развития языка. Похожая история и со строками: есть разные формы создания, разные способы объединения, форматирования и преобразования значений. Это следствие долгой эволюции языка.
Важно понимать: C++ не переписывался заново каждые 10 лет. Он аккуратно расширялся, сохраняя совместимость со старым кодом. Именно поэтому в нём накопилось так много возможностей.
Но это не значит, что нам нужно изучать всё подряд. Мы будем использовать самые современные и актуальные стандарты — C++20 и C++23. Мы будем писать код в современном стиле, выбирать более безопасные и понятные конструкции и постепенно разбираться в языке без перегруза историческими деталями.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ