Статические переменные в 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 переменные в методах, но только в классах.

Спасибо.

Ответы на вопрос(4)

Ваш ответ на вопрос