Переменные С++
Переменные в C++ — это имя, данное ячейке памяти. Это основная единица хранения в программе.
- Значение, сохраненное в переменной, может быть изменено во время выполнения программы.
- Переменная - это только имя, данное ячейке памяти, все операции, выполняемые с переменной, влияют на эту ячейку памяти.
- В C++ все переменные должны быть объявлены перед использованием.
Правила объявления переменных
- Имя переменной содержит буквы , цифры и символы подчеркивания .
- Имя переменной чувствительно к регистру (например, Arr и arr — разные переменные).
- Имя переменной не содержит пробелов и специальных символов (например , #,$,%,* и т. д.).
- Все имена переменных должны начинаться с буквы алфавита или символа подчеркивания (_).
- Мы не можем использовать ключевое слово C++ (ex float, double, class) в качестве имени переменной.
Как объявлять переменные?
Типичное объявление переменной имеет вид:
// Declaring a single variable type variable_name; // Declaring multiple variables: type variable1_name, variable2_name, variable3_name;
Имя переменной может состоять из букв (как в верхнем, так и в нижнем регистре), цифр и символа подчеркивания «_». Однако имя не должно начинаться с цифры.
На приведенной выше диаграмме
datatype: Type of data that can be stored in this variable.
variable_name: Name given to the variable.
value: It is the initial value stored in the variable.
Примеры :
// Declaring float variable float simpleInterest; // Declaring integer variable int time, speed; // Declaring character variable char var;
Разница между объявлением переменной и определением
Объявление переменной относится к той части, где переменная впервые объявляется или вводится перед ее первым использованием. Определение переменной — это часть, в которой переменной присваивается место в памяти и значение. В большинстве случаев объявление и определение переменных выполняются вместе.
См. следующую программу C++ для лучшего пояснения:
Типы переменных
Существует три типа переменных, основанных на области действия переменных в C++.
- Локальные переменные
- Переменные экземпляра
- Статические переменные
Давайте теперь узнаем о каждой из этих переменных подробно.
- Локальные переменные : переменная, определенная в блоке, методе или конструкторе, называется локальной переменной.
- Эти переменные создаются при вводе в блок или вызове функции и уничтожаются после выхода из блока или при возврате вызова из функции.
- Область действия этих переменных существует только в пределах блока, в котором объявлена переменная. т.е. мы можем получить доступ к этой переменной только внутри этого блока.
- Инициализация локальной переменной обязательна.
- Переменные экземпляра : переменные экземпляра являются нестатическими переменными и объявляются в классе вне какого-либо метода, конструктора или блока.
- Поскольку переменные экземпляра объявляются в классе, эти переменные создаются при создании объекта класса и уничтожаются при уничтожении объекта.
- В отличие от локальных переменных, мы можем использовать спецификаторы доступа для переменных экземпляра. Если мы не укажем спецификатор доступа, будет использоваться спецификатор доступа по умолчанию.
- Инициализация переменной экземпляра не обязательна.
- Доступ к переменной экземпляра можно получить только путем создания объектов.
- Статические переменные : Статические переменные также известны как переменные класса.
- Эти переменные объявляются так же, как и переменные экземпляра, разница в том, что статические переменные объявляются с использованием ключевого слова static внутри класса вне любого конструктора метода или блока.
- В отличие от переменных экземпляра, у нас может быть только одна копия статической переменной для каждого класса, независимо от того, сколько объектов мы создаем.
- Статические переменные создаются в начале выполнения программы и автоматически уничтожаются по окончании выполнения.
- Инициализация статической переменной не является обязательной. Его значение по умолчанию равно 0
- Если мы получим доступ к статической переменной, такой как переменная экземпляра (через объект), компилятор покажет предупреждающее сообщение и не остановит программу. Компилятор автоматически заменит имя объекта именем класса.
- Если мы получим доступ к статической переменной без имени класса, компилятор автоматически добавит имя класса.
Переменная экземпляра против статической переменной
- Каждый объект будет иметь свою собственную копию переменной экземпляра, тогда как у нас может быть только одна копия статической переменной для каждого класса, независимо от того, сколько объектов мы создаем.
- Изменения, внесенные в переменную экземпляра с использованием одного объекта , не будут отражаться в других объектах, поскольку каждый объект имеет собственную копию переменной экземпляра. В случае статического изменения будут отражены в других объектах, поскольку статические переменные являются общими для всех объектов класса.
- Мы можем получить доступ к переменным экземпляра через ссылки на объекты, а к статическим переменным можно получить доступ напрямую, используя имя класса.
- Синтаксис для статических переменных и переменных экземпляра:
class Example { static int a; // static variable int b; // instance variable }