What does static variable mean?

a static variable is a variable that has been allocated statically — whose lifetime extends across the entire run of the program. This is in contrast to the more ephemeral automatic variables (local variables), whose storage is allocated and deallocated on the call stack; and in contrast to objects whose storage is dynamically allocated.

The main uses of the static.

  1. If you declare within a function:

–> It retains the value between function calls

2.If it is declared for a function name:

–>By default function is extern…so it will be visible from other files if the

function declaration is as static…it is invisible for the outer files

  1. Static for global variables:

–>By default we can use the global variables from outside files If it is

static global…that variable is limited to with in the file.

for eg:


void func()
static int x = 0; // x is initialized only once across three calls of func()
", x); // outputs the value of x
x = x + 1;

int main(int argc, char * const argv[])
func(); // prints 0
func(); // prints 1
func(); // prints 2
return 0;