Difference Between Local and Global Variable

In this post, we will understand the difference between local and global variables.
It is generally declared inside a function.
It is generally declared inside a function.
If it isn’t initialized, a garbage value is stored inside it.
If it isn’t initialized, a garbage value is stored inside it.
It is created when the function begins its execution.
It is created when the function begins its execution.
It is lost when the function is terminated.
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.
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.
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.
It is stored on a stack, unless mentioned otherwise.
They can be accessed using statement inside the function where they are declared.
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.
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.
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.
It is declared outside the function.
If it isn’t initialized, the value of zero is stored in it as default.
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 created before the global execution of the program.
It is lost when the program terminates.
It is lost when the program terminates.
Data sharing is possible since multiple functions can access the global variable.
Data sharing is possible since multiple functions can access the global variable.
They are visible throughout the program, hence passing parameters is not required.
They are visible throughout the program, hence passing parameters is not required.
It can be accessed using any statement within the program.
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.
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.
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;
}