Static Variable
A static variable is a special variable that is stored in the data segment unlike the default automatic variable that is stored in stack. A static variable can be initialised by using keyword static before variable name.
For Example:
static int a = 5;
A static variable behaves in a different manner depending upon whether it is a global variable or a local variable. A static global variable is same as an ordinary global variable except that it cannot be accessed by other files in the same program / project even with the use of keyword extern. A static local variable is different from local variable. It is initialised only once no matter how many times that function in which it resides is called. It may be used as a count variable.
Example:
void count(void) {
static int count1 = 0;
int count2 = 0;
count1++;
count2++;
printf("\nValue of count1 is %d Value of count2 is %d", count1, count2);
}
//In Main function:
main() {
count();
count();
count();
}
Output would be:
Value of count1 is 1 Value of count2 is 1
Value of count1 is 2 Value of count2 is 1
Value of count1 is 3 Value of count2 is 1
Showing posts with label static variable. Show all posts
Showing posts with label static variable. Show all posts
What does static variable mean?
What does static variable mean?
There are 3 main uses for 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
3. 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.
Static variable sample program:-
#include
int t = 10;
main(){
int x = 0;
void funct1();
funct1();
printf("After first call \n");
funct1();
printf("After second call \n");
funct1();
printf("After third call \n");
}
void funct1()
{
static int y = 0;
int z = 10;
printf("value of y %d z %d",y,z);
y=y+10;
}
output :-
value of y 0 z 10 After first call
value of y 10 z 10 After second call value of y 20 z 10 After third call
Keywords:
static variables java static variable c static variable in c++ static variable vs global variable global static variable in c static variable in c# static function static variable in python
c interview questions c++ faq faq on pointers in c faq on arrays in c faq videos c tutorial faqs on strings in c steve summit faq on pointers in c faq on arrays in c c++ faq programming in c textbook c tutorial c programming resources c language reference cinterviews.com
Subscribe to:
Posts (Atom)