Easyобласть видимости
Чем локальная переменная отличается от глобальной?
1Постановка
Разберём, что от вас хотят в этом вопросе и как к нему подступиться на собеседовании.
2Решение
Локальная создаётся при входе в блок {...} в стеке и уничтожается при выходе. Глобальная существует всё время работы программы, объявлена вне функций.
int globalCount = 0; // глобальная — инициализируется нулём
void f() {
int local = 5; // локальная — НЕ инициализируется по умолчанию
globalCount++;
} // local уничтожается здесь- Локальные (встроенных типов) не инициализируются по умолчанию (кроме
static), глобальные — нулями; - Глобальные ухудшают дизайн: неявные зависимости, проблемы в многопоточности, сложнее тестировать.
3Как отвечать
- Сначала уточните условия и ограничения, покажите аналитическое мышление.
- Рассуждайте вслух — интервьюеру важен ход мысли, а не только финальный ответ.
- Оцените сложность по времени и памяти (Big-O), если это алгоритмический вопрос.
💡
На реальном собеседовании Alffert подскажет развёрнутый ответ в реальном времени.