A local variable is declared by a local-variable-declaration, which may occur in a block, a for-statement, or a switch-statement. A local variable comes into existence when control enters the block, for-statement, or switch-statement that immediately contains the local variable declaration. A local variable ceases to exist when control leaves its immediately containing block, for-statement, or switch-statement.
A local variable is not automatically initialized and thus has no default value. For purposes of definite assignment checking, a local variable is considered initially unassigned. A local-variable-declaration may include a variable-initializer, in which case the variable is considered definitely assigned in its entire scope, except within the expression provided in the variable-initializer.
Within the scope of a local variable, it is an error to refer to the local variable in a textual position that precedes its variable-declarator.