A local static variable is a variable whose lifetime doesn’t end with a function call where it is declared. It extends for the lifetime of complete program. All calls to the function share the same copy of local static variables. Static variables can be used to count the number of times a function is called. Also, static variables get the default value as 0. For example, the following program prints “0 1”
#include <stdio.h> void fun() { // static variables get the default value as 0. static int x; printf("%d ", x); x = x + 1; } int main() { fun(); fun(); return 0; } // Output: 0 1