You could declare a static variable count with this declaration:
static int count = 0;
static is a keyword.
A static variable doesn't get destroyed when execution leaves the function.
A static variable is initialized only once, right at the beginning of the program.
A static variable is visible only within the function that contains its declaration, it is essentially a global variable.
All static variables are initialized to 0 by default if you don't specify an initial value.
The following code shows the difference between static variables and automatic variables.
#include <stdio.h> // Function prototypes void test1(void); void test2(void); int main(void) { for (int i = 0; i < 5; ++i) {/*from w w w .ja va 2 s . c o m*/ test1(); test2(); } return 0; } // Function test1 with an automatic variable void test1(void) { int count = 0; printf("test1 count = %d\n", ++count); } // Function test2 with a static variable void test2(void) { static int count = 0; printf("test2 count = %d\n", ++count); }
The two variables called count are defined in the code above.
The static variable count is declared in the function test2():