In this post, we will understand the difference between local and global variables.
It is generally declared inside a function.
If it isn’t initialized, a garbage value is stored inside it.
It is created when the function begins its execution.
It is lost when the function is terminated.
Data sharing is not possible since the local variable/data can be accessed by a single function.
Parameters need to be passed to local variables so that they can access the value in the function.
It is stored on a stack, unless mentioned otherwise.
They can be accessed using statement inside the function where they are declared.
When the changes are made to local variable in a function, the changes are not reflected in the other function.
Local variables can be accessed with the help of statements, inside a function in which they are declared.
Following is an example −
#include <stdio.h> int main () { /* local variable declaration */ int a, b; int c; /* actual initialization */ a = 10; b = 20; c = a + b; printf ("value of a = %d, b = %d and c = %d\n", a, b, c); return 0; }
It is declared outside the function.
If it isn’t initialized, the value of zero is stored in it as default.
It is created before the global execution of the program.
It is lost when the program terminates.
Data sharing is possible since multiple functions can access the global variable.
They are visible throughout the program, hence passing parameters is not required.
It can be accessed using any statement within the program.
It is stored on a specific location inside the program, which is decided by the compiler.
When changes are made to the global variable in one function, these changes are reflected in the other parts of the program as well.
Following is an example −
#include /* global variable declaration */ int g; int main () { /* local variable declaration */ int a, b; /* actual initialization */ a = 10; b = 20; g = a + b; printf ("value of a = %d, b = %d and g = %d\n", a, b, g); return 0; }