When we create a variable, it is actually creating a memory space in system to hold the value. In other words a variable is a named memory address which stores the value. These variables can take different value over the period of program life. Once the program is over, all the memories held by these variables are released. During the life time / period of execution of the program, we can define the behavior scope of the variable in different ways. It all depends on the requirement, accessibility and the time required accessing the variables from memory.
There are mainly 4 types of storage class which defines the scope of the variable during the execution of the program. Two of them are associated with local variable and two of them are associated with global variable.