Переменные в языке C++
Объявление переменных
Объявление переменной в языке C++ в общем случае делается используя следующий синтаксис:
где
- <тип> - это дип данных, который будет использоваться для всех указанных переменных
- <имя_переменной> - символьное имя переменной
Правила именования переменных:
- имя переменной может состоять только из латинских букв, цифр и символа подчеркивания
- прописные и строчные буквы в именах различаются, то есть переменные abc и Abc - разные переменные
- имя переменной не может начинаться с цифры
- имя переменной не может повторяться, то есть нельзя объявить две переменные с одним именем
- в качестве имени переменной не могут использоваться ключевые слова языка C++. Список таких слов следующий: alignas, alignof, asm, auto, bool, break, case, catch, char, char16_t, char32_t, class, const, constexpr, const_cast, continue, decltype, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutubale, namespace, new, noexcept, nullptr, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_assert, static_cast, struct, switch, template, this, thread_local, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while.
Переменные в языке C++ могут объявляться в любом месте программы, но должны быть объявлены до первого их использования.
Пример кода:
int a; float b, c; char str_v1, d, e;
Инициализация переменных
Инициализация переменной - это объявление переменной, с одновременным присваиванием ей какого-то значения.
В C++ существует три типа инициализации:
- копирующая инициализация
- прямая инициализация
- универсальная инициализация (C++ 11)
Копирующая инициализация
Пример кода:
int a = 0, b, c = 12; // инициализированы переменные a и c float f = 1.2f, e; // инициализирована только переменная f, у переменной e - неопределенное значение double g, d = 3.145; // инициализирована только переменная d, у переменной g - неопределенное значение
При объявлении переменных можно инициализировать не все переменные. Если переменная не инициализируется, ее значение будет неопределенным.
Прямая инициализация
Пример кода:
int a(1), b, c(3), d; // инициализированы переменные a и c
Универсальная инициализация
Прямая или копирующая инициализация работают не со всеми типами данных (например, вы не сможете использовать эти способы для инициализации списка значений). В попытке обеспечить единый механизм инициализации, который будет работать со всеми типами данных, в C++11 добавили новый способ инициализации.
Пример кода:
int a{ 1 }, b, c{ 3 }, d; // инициализированы переменные a и c int e{}; // переменная инициализируется значением по-умолчанию для типа, в данном случае 0
При использовании универсальной инициализации, если переменная инициализируется значением другого типа, то на этапе компиляции программы генерируется ошибка.
Пример кода:
int a = 4.5; // предупреждение при компиляции int b(4.5); // предупреждение при компиляции int c{4.5}; // ошибка компиляции