In case of single file programs static variables are defined within functions and individually have the same scope as automatic variables. But static variables retain their values throughout the execution of program within their previous values.
Points to remember:
• The specifier precedes the declaration. Static and the value cannot be accessed outside of their defining function.
• The static variables may have same name as that of external variables but the local variables take precedence in the function. Therefore external variables maintain their independence with locally defined auto and static variables.
• Initial value is expressed as the constant and not expression.
• Zeros are assigned to all variables whose declarations do not include explicit initial values. Hence they always have assigned values.
• Initialization is done only is the first execution.