Scope of global variable
In this tutorial we will be learning about the Scope of global variable in c programming. How global variable is accessed in complete program is explained using simple example.
Scope of global variable
#include<stdio.h> int num = 100 ; // Global void func(); // Prototype int main() { int num = 20; // Local to main { int num = 30 ; // Local to Inner Part printf("%d ",num); func(); } printf("%d ",num); return(0); } void func() { printf("%d ",num); }
Output :
30 100 20
Explanation : Scope of the Variable
In the above program we have total three copies of same variable. We have 3 copies of the variable num
. Below is the list of all copies of variable in program -
Copy of variable | Statement |
---|---|
Global copy of variable | int num = 100; |
Local copy of variable in main function | int num = 20; |
Local copy of variable inside block | int num = 30; |
Local Variable copy
We know that global variable can be accessed using the complete program. If same variable is declared inside the scope where global variable is accessible then priority will be given to local variable
{ int num = 30 ; // Local to Inner Part printf("%d ",num); func(); }
in the above inner block, priority is given to the local variable i.e 30. If we remove the following declaration line then output printed would be 20
Local Function Variable
function is written outside the main function. So in this case only global copy will be accessible not the one which is declared inside the main so it would print 100
void func() { printf("%d ",num); }
after calling the above function from inner block we can have access to the global copy of variable since we don’t have local copy of variable.
Outside Inner block copy
printf("%d ",num); return(0);
after moving out from the inner block, we again have access to the local copy from main function.