Переменные С++

Опубликовано: 10 Января, 2023

Переменные в C++ — это имя, данное ячейке памяти. Это основная единица хранения в программе.

  • Значение, сохраненное в переменной, может быть изменено во время выполнения программы.
  • Переменная - это только имя, данное ячейке памяти, все операции, выполняемые с переменной, влияют на эту ячейку памяти.
  • В C++ все переменные должны быть объявлены перед использованием.

Правила объявления переменных

  1. Имя переменной содержит буквы , цифры и символы подчеркивания .
  2. Имя переменной чувствительно к регистру (например, Arr и arr — разные переменные).
  3. Имя переменной не содержит пробелов и специальных символов (например , #,$,%,* и т. д.).
  4. Все имена переменных должны начинаться с буквы алфавита или символа подчеркивания (_).
  5. Мы не можем использовать ключевое слово 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++.

  • Локальные переменные
  • Переменные экземпляра
  • Статические переменные

Давайте теперь узнаем о каждой из этих переменных подробно.

  1. Локальные переменные : переменная, определенная в блоке, методе или конструкторе, называется локальной переменной.
    • Эти переменные создаются при вводе в блок или вызове функции и уничтожаются после выхода из блока или при возврате вызова из функции.
    • Область действия этих переменных существует только в пределах блока, в котором объявлена переменная. т.е. мы можем получить доступ к этой переменной только внутри этого блока.
    • Инициализация локальной переменной обязательна.
  2. Переменные экземпляра : переменные экземпляра являются нестатическими переменными и объявляются в классе вне какого-либо метода, конструктора или блока.
    • Поскольку переменные экземпляра объявляются в классе, эти переменные создаются при создании объекта класса и уничтожаются при уничтожении объекта.
    • В отличие от локальных переменных, мы можем использовать спецификаторы доступа для переменных экземпляра. Если мы не укажем спецификатор доступа, будет использоваться спецификатор доступа по умолчанию.
    • Инициализация переменной экземпляра не обязательна.
    • Доступ к переменной экземпляра можно получить только путем создания объектов.
  3. Статические переменные : Статические переменные также известны как переменные класса.
    • Эти переменные объявляются так же, как и переменные экземпляра, разница в том, что статические переменные объявляются с использованием ключевого слова static внутри класса вне любого конструктора метода или блока.
    • В отличие от переменных экземпляра, у нас может быть только одна копия статической переменной для каждого класса, независимо от того, сколько объектов мы создаем.
    • Статические переменные создаются в начале выполнения программы и автоматически уничтожаются по окончании выполнения.
    • Инициализация статической переменной не является обязательной. Его значение по умолчанию равно 0
    • Если мы получим доступ к статической переменной, такой как переменная экземпляра (через объект), компилятор покажет предупреждающее сообщение и не остановит программу. Компилятор автоматически заменит имя объекта именем класса.
    • Если мы получим доступ к статической переменной без имени класса, компилятор автоматически добавит имя класса.

Переменная экземпляра против статической переменной

  • Каждый объект будет иметь свою собственную копию переменной экземпляра, тогда как у нас может быть только одна копия статической переменной для каждого класса, независимо от того, сколько объектов мы создаем.
  • Изменения, внесенные в переменную экземпляра с использованием одного объекта , не будут отражаться в других объектах, поскольку каждый объект имеет собственную копию переменной экземпляра. В случае статического изменения будут отражены в других объектах, поскольку статические переменные являются общими для всех объектов класса.
  • Мы можем получить доступ к переменным экземпляра через ссылки на объекты, а к статическим переменным можно получить доступ напрямую, используя имя класса.
  • Синтаксис для статических переменных и переменных экземпляра:
class Example
{
    static int a; // static variable
    int b;        // instance variable
}
C++