Область переменной является областью программы, где переменные могут быть объявлены:

  • Внутри функции или блока, который называется локальными переменными,
  • В определении параметров функции, которые называются формальными параметрами.
  • Вне всех функций, которые называются глобальными переменными.

Локальные переменные

Переменные, объявленные внутри функции или блока, являются локальными переменными. Они могут использоваться только операторами, которые находятся внутри этой функции или блока кода. Локальные переменные не известны функциям вне их собственных. Ниже приведен пример использования локальных переменных: 

#include <iostream>
using namespace std;
 
int main () {
   // Local variable declaration:
   int a, b;
   int c;
 
   // actual initialization
   a = 10;
   b = 20;
   c = a + b;
 
   cout << c;
 
   return 0;
}

Глобальные переменные

Глобальные переменные определяются вне всех функций, обычно поверх программы. Глобальные переменные будут сохранять свою ценность на протяжении всей вашей программы.

Доступ к глобальной переменной можно получить любой функцией. То есть глобальная переменная доступна для использования во всей вашей программе после ее объявления. Ниже приведен пример использования глобальных и локальных переменных:

#include <iostream>
using namespace std;
 
// Global variable declaration:
int g;
 
int main () {
   // Local variable declaration:
   int a, b;
 
   // actual initialization
   a = 10;
   b = 20;
   g = a + b;
  
   cout << g;
 
   return 0;
}

Программа может иметь одно и то же имя для локальных и глобальных переменных, но предпочтение будет отдавать значение локальной переменной внутри функции. Например:

#include <iostream>
using namespace std;
 
// Global variable declaration:
int g = 20;
 
int main () {
   // Local variable declaration:
   int g = 10;
 
   cout << g;
 
   return 0;
}

Когда приведенный выше код компилируется и выполняется, он производит следующий результат:

10

Инициализация локальных и глобальных переменных

Когда локальная переменная определена, она не инициализируется системой, вы должны ее инициализировать самостоятельно. Глобальные переменные автоматически инициализируются системой, когда вы определяете их следующим образом:

Data Type Initializer
int 0
char '\0'
float 0
double 0
pointer NULL

Хорошая практика программирования - правильно инициализировать переменные, иначе программа может вызвать неожиданный результат.