История изменений
Исправление beastie, (текущая версия) :
Да, правильно. Инициализация static происходит один раз. Но и дальнейшие изменения сохраняются между вызовами:
#include <stdio.h>
void
func(void)
{
static int a = 10;
printf("%d\n", a);
a += 10;
}
int
main()
{
func();
func();
func();
return 0;
}
Одним словом это такая изощрённая глобальная переменная. И ведёт она себя так же.
Исправление beastie, :
Да, правильно. Инициализация static происходит один раз. Но и дальнейшие изменения сохраняются между вызовами:
#include <stdio.h>
void
func(void)
{
static int a = 10;
printf("%d\n", a);
a += 10;
}
int
main()
{
func();
func();
func();
return 0;
}
Исходная версия beastie, :
Да, правильно. Инициализация static происходит один раз. Но и дальнейшие изменения сохраняются между вызовами.