Область видимости переменных в C++: локальные и глобальные
Область видимости — это область программы. Существует три места, где можно объявлять переменные:
Внутри функции или блока — называются локальными переменными,
В определении параметров функции — называются формальными параметрами.
Вне всех функций — называются глобальными переменными.
Функции и их параметры рассмотрим позже. Здесь объясним локальные и глобальные переменные.
Локальные переменные
Переменные, объявленные внутри функции или блока, являются локальными. Их можно использовать только операторами внутри этой функции или блока. Локальные переменные неизвестны функциям вне своей области. Пример:
Live Demo#include <iostream>
using namespace std;
int main() {
// Объявление локальных переменных:
int a, b;
int c;
// фактическая инициализация
a = 10;
b = 20;
c = a + b;
cout << c;
return 0;
}
Глобальные переменные
Глобальные переменные определяются вне всех функций, обычно в начале программы. Они сохраняют своё значение на протяжении всего времени жизни программы.
К глобальной переменной имеет доступ любая функция. То есть глобальная переменная доступна во всей программе после её объявления. Пример с глобальными и локальными переменными:
Live Demo#include <iostream>
using namespace std;
// Объявление глобальной переменной:
int g;
int main() {
// Объявление локальных переменных:
int a, b;
// фактическая инициализация
a = 10;
b = 20;
g = a + b;
cout << g;
return 0;
}
Программа может иметь одинаковые имена для локальных и глобальных переменных, но внутри функции значение локальной переменной имеет приоритет. Пример:
Live Demo#include <iostream>
using namespace std;
// Глобальная переменная:
int g = 20;
int main() {
// Локальная переменная:
int g = 10;
cout << g;
return 0;
}
Результат компиляции и выполнения:
10
Инициализация локальных и глобальных переменных
При определении локальной переменной она не инициализируется системой — нужно инициализировать самостоятельно. Глобальные переменные инициализируются системой автоматически при определении:
| Тип данных | Инициализатор |
|---|---|
| int | 0 |
| char | '\0' |
| float | 0 |
| double | 0 |
| указатель | NULL |
Хорошей практикой является правильная инициализация переменных, иначе программа может давать неожиданные результаты.
Язык C
- Мастерство C# переменных и примитивных типов данных: полное руководство
- Область видимости переменных в C#: класс, метод и блок
- Освоение переменных, литералов и констант в C++: подробное руководство
- Освоение операторов C++: полное руководство с практическими примерами
- Комментарии в C++: лучшие практики для читаемого и поддерживаемого кода
- Переменные, константы и литералы в C: полное руководство
- Классы хранения в C: область видимости, время жизни и производительность
- Глобальные, локальные и nonlocal переменные в Python: понимание и применение
- Переменные и типы данных в C++: подробное руководство по int, double, char, string, bool
- Указатели в C++: концепции, примеры и практические применения