Static é uma palavra-chave usada na linguagem de programação C. Pode ser usado tanto com variáveis quanto com funções, ou seja, podemos declarar uma variável estática e também uma função estática. Uma variável comum é limitada ao escopo em que é definida, enquanto o escopo da variável estática abrange todo o programa.
substituindo string em java
A palavra-chave estática pode ser usada nas seguintes situações:
Quando uma variável global é declarada com uma palavra-chave estática, ela é conhecida como variável global estática. É declarado no topo do programa e sua visibilidade ocorre em todo o programa.
Quando uma função é declarada com uma palavra-chave estática conhecida como função estática. Sua vida útil é durante todo o programa.
Quando uma variável local é declarada com uma palavra-chave estática, ela é conhecida como variável local estática. A memória de uma variável local estática é válida em todo o programa, mas o escopo de visibilidade de uma variável é o mesmo das variáveis locais automáticas. No entanto, quando a função modifica a variável local estática durante a primeira chamada de função, esse valor modificado também estará disponível para a próxima chamada de função.
Quando as variáveis de membro são declaradas com uma palavra-chave estática em uma classe, isso é conhecido como variáveis de membro estáticas. Eles podem ser acessados por todas as instâncias de uma classe, não por uma instância específica.
A função membro de uma classe declarada com uma palavra-chave estática é conhecida como método estático. É acessível por todas as instâncias de uma classe, não por uma instância específica.
Vamos entender através de um exemplo.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; }
No código acima, a função func() é chamada. Em func(), a variável de contagem é atualizada. Assim que a função concluir sua execução, a memória da variável count será removida. Se não quisermos remover a contagem da memória, precisaremos usar a variável count como estática. Se declararmos a variável como estática, então a variável não será removida da memória mesmo quando a função completar sua execução.
Saída
1 1
Variável estática
Uma variável estática é uma variável que persiste seu valor nas várias chamadas de função.
Sintaxe
A sintaxe de uma variável estática é fornecida abaixo:
static data_type variable_name;
Vejamos um exemplo simples de variável estática.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { static int count=0; count++; return count; }
No código acima, declaramos a variável count como estática. Quando func() é chamado, o valor de count é atualizado para 1, e durante a próxima chamada de função, o valor da variável count se torna 2. Portanto, podemos dizer que o valor da variável estática persiste dentro da chamada de função .
Saída
1 2
Função Estática
Como sabemos que as funções não estáticas são globais por padrão, significa que a função também pode ser acessada fora do arquivo, mas se declararmos a função como estática, isso limitará o escopo da função. A função estática pode ser acessada apenas dentro de um arquivo.
scanner java próximo
A função estática ficaria assim:
static void func() { printf('Hello javaTpoint'); }
Diferenças entre variável estática e global
Variáveis globais são as variáveis declaradas fora da função. Essas variáveis globais existem no início do programa e seu escopo permanece até o final do programa. Ele também pode ser acessado fora do programa.
comparar strings java
Variáveis estáticas estão limitadas ao arquivo fonte em que estão definidas, ou seja, não são acessíveis pelos demais arquivos fonte.
Ambas as variáveis estáticas e globais possuem inicialização estática. Aqui, inicialização estática significa que se não atribuirmos nenhum valor à variável, então, por padrão, o valor 0 será atribuído à variável.
Diferenças entre variável local estática e variável global estática
Variável global estática
Se a variável for declarada com uma palavra-chave estática fora da função, ela será conhecida como variável global estática. É acessível durante todo o programa.
Variável local estática
A variável com uma palavra-chave estática é declarada dentro de uma função e é conhecida como variável local estática. O escopo da variável local estática será o mesmo das variáveis locais automáticas, mas sua memória estará disponível durante toda a execução do programa. Quando a função modifica o valor da variável local estática durante uma chamada de função, ela permanecerá a mesma mesmo durante a próxima chamada de função.
Propriedades de uma variável estática
A seguir estão as propriedades de uma variável estática:
- A memória de uma variável estática é alocada dentro de uma variável estática.
- Sua memória está disponível durante todo o programa, mas o escopo permanecerá o mesmo das variáveis locais automáticas. Isso é
- value persistirá nas várias chamadas de função.
- Se não atribuirmos nenhum valor à variável, o valor padrão será 0.
- Uma variável estática global não pode ser acessada fora do programa, enquanto uma variável global pode ser acessada por outros arquivos de origem.