Статические переменные в C ++ и Java
У меня есть вопрос: допустим, у нас есть эта функция: (в C ++)
int& f() {
static int x = 0;
return x;
} // OK
а также
int& h() {
int x=0;
return x;
} // ERROR
Почемуh
дать ошибку? Это из-за ключевого словаstatic
? я нашелstatic
Ключевое слово позволяет моемуx
переменная жить после того, как моя функция завершена. Таким образом, я все еще могу получить доступ к этой ячейке памяти извне (другая функция или главное «верно»). Вместо intx = 0
потерян послеh
завершается. Правильно? Я не уверен, что действительно понял!
А как насчет Java? Читаю не могу объявитьstatic
переменные в методах, но только в классах.
Спасибо.