Curso de C
Variáveis Static


Você está em: MarMSX >> Cursos >> C   O modificador static cria uma variável local estática, que não é destruída quando a função termina. Veja o exemplo a seguir.
#include <stdio.h>

void funcao()
{
  static int a=0;
  int b=0;

  printf("a=%d e b=%d\n", a, b);

  a++;
  b++;
}

main()
{
  int i;
  for (i=0; i<5; i++)
    funcao();
}
  Saída:
  a=0 e b=0
  a=1 e b=0
  a=2 e b=0
  a=3 e b=0
  a=4 e b=0

  A variável "a" é estática e permanece na memória, enquanto que "b" é recriada a cada vez que a função é chamada.
  Como "a" é criado em tempo de compilação, o valor 0 é atribuído antes da função ser chamada. A cada passada na função, a atribuição na declaração é ignorada, pois a variável já foi criada. Entretanto, a atribuição "a=0" fora da declaração irá fazer com que "a" seja igual a zero.
  Exemplo:
static int a;
a=0;
  Nesse caso, o valor de "a" será sempre 0.



<< Anterior Linguagem C Próxima >>