Programming: Local Variables in Subroutines

Programming: Local Variables in Subroutines

Local Variables in Subroutines


  • Local Variables are variables that are declared inside a subroutine or procedure.

Scope and Lifetime

  • The scope of a local variable is limited to the subroutine or procedure where it was declared. It’s not accessible from outside.
  • The lifetime of a local variable is only as long as the subroutine is running. When the subroutine finishes, the variable is destroyed.
  • This makes local variables perfect for temporary storage during the execution of a subroutine.

Properties and Usage

  • Each invocation of a subroutine has its own set of local variables. Even if a subroutine is called multiple times recursively, each call has a unique set of local variables.
  • Local variables are created each time a subroutine is called and destroyed when the subroutine ends.
  • They are often used for calculation purposes within a subroutine and storing the result of an operation.


  • As local variables are independently created for each subroutine call, recursion is possible.
  • They do not interfere with variables outside and help to prevent unintended changes to other parts of the program.
  • Using local variables can make programming simpler by reducing the number of possible interactions between variables in different parts of the program.


  • A local variable cannot retain its value between subroutine calls.
  • They are not accessible for other parts of the program, so they cannot be used to pass data in or out of a function.
  • Due to their limited scope and lifetime, the use of local variables needs careful planning, especially in more complex program structures.

Parameter Passing and Local Variables

  • When using parameter passing, a subroutine can accept input values from its calling program in the form of parameters.
  • Parameters in a subroutine are treated as local variables.
  • There are two ways of parameter passing: pass-by-value and pass-by-reference.


  • In pass-by-value, a copy of the actual parameter’s value is made and the function works with the copied values.
  • Changes made to these parameters in the subroutine do not affect the actual parameter.


  • In pass-by-reference, the address of the memory location for the actual parameter is passed, so the subroutine has the ability to modify the original data values.
  • This method of passing parameters is useful when a function needs to update values in their original memory locations.

Remember that understanding the properties and behaviour of local variables is crucial to understanding how subroutines work in a program.