Updated: May 18, 2020
In all-purpose, a variable that is defined in a block is available in that block only. It is not reachable outside the block. Such a variable is called a local variable. Formal argument identifiers also act as local variables.
Example: Function with a Local Variable
print ("user = ", user)
Here, user is a local variable for the SayHey() function and is not reachable outside of it.
Advantages of using Local Variables
The use of local variables provide a guarantee that the values of variables will remain intact while the task is running
If a number of tasks change a single variable that is running concurrently, then the result may be random. But declaring it as local variable solves this issue as each task will create its own instance of the local variable.
We can provide local variables the same name in dissimilar functions because they are only known by the function they are declared in.
Local variables are deleted as soon as any function is over and release the memory space which it occupies.
Disadvantages of using Local Variables
The debugging process of a local variable is quite complicated.
Common data required to pass again and again as data sharing is not possible between modules.
They have a very limited scope.
Any variable lie outside any function block is termed as a global variable. Its value is reachable from inside any function.
Example: Function with a Global Variable
print ("user = ", user)
Here user can access as global variable because it has been defined out of a function.
Advantages of using Global variables
We can access the global variable from all the functions or modules in a program
We only require declaring global variable single time outside the modules.
It is ideally used for storing "constants" as it helps you keep the consistency.
A Global variable is helpful when several functions are accessing the same data.
Disadvantages of using Global Variables
Too many variables declared as global, then they stay behind in the memory till program execution is completed. This can cause of Out of Memory issue.
Data can be customized by any function. Any statement written in the program can change the value of the global variable. This may give changeable results in multi-tasking environments.
If global variables are discontinued due to code refactoring, we will need to change all the modules where they are called.
Differences between Local and Global variables.
Local variables is defined inside a function whereas global variables are define outside the function.
If it is not initialized, a garbage value is stored whereas If it is not initialized zero is stored as default.
Local variable is created when the function starts execution and the functions is terminated then it is lost whereas global variables is created before the program's global execution starts and when the program is terminated then it is lost.
Data sharing is not possible by local variables whereas data sharing is possible by global variable.
Parameters passing is necessary for local variables to access the value in other function
whereas parameters passing is not necessary for a global variable as it is visible throughout the program
We can access local variables by statements, inside a function in which they are declared whereas we can access global variables by any statement in the program.
It is stored on the stack unless specified whereas It is stored on a fixed location determined by the compiler.