logo

Estática em C

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:

    Variável global estática
    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.Função estática
    Quando uma função é declarada com uma palavra-chave estática conhecida como função estática. Sua vida útil é durante todo o programa.Variável local estática
    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.Variáveis ​​de membro estático
    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.Método estático
    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.