Variáveis estáticas em C ++ e Java
Eu tenho uma pergunta: digamos que temos esta função: (em C ++)
int& f() {
static int x = 0;
return x;
} // OK
e
int& h() {
int x=0;
return x;
} // ERROR
Porqueh
deu um erro? É por causa da palavra-chavestatic
? eu encontreistatic
palavra-chave permite que meux
variável ao vivo depois que minha função é encerrada. Portanto, ainda posso acessar o local da memória de fora (outra função ou principal? Certo?). Em vez disso, intx = 0
é perdido depoish
termina. Direito? Não tenho certeza se realmente entendi!
E o Java? Eu li que não posso declararstatic
variáveis em métodos, mas apenas em classes.
Obrigado.