[basic.scope.block]

# 6 Basics [[basic]](./#basic)

## 6.4 Scope [[basic.scope]](basic.scope#block)

### 6.4.3 Block scope [basic.scope.block]

[1](#1)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/basic.tex#L1391)

Each

- [(1.1)](#1.1)

selection, iteration, or expansion statement ([[stmt.select]](stmt.select "8.5 Selection statements"), [[stmt.iter]](stmt.iter "8.6 Iteration statements"), [[stmt.expand]](stmt.expand "8.7 Expansion statements")),

- [(1.2)](#1.2)

substatement of such a statement,

- [(1.3)](#1.3)

[*handler*](except.pre#nt:handler "14.1 Preamble [except.pre]") ([[except.pre]](except.pre "14.1 Preamble")), or

- [(1.4)](#1.4)

compound statement ([[stmt.block]](stmt.block "8.4 Compound statement or block"))
that is not the [*compound-statement*](stmt.block#nt:compound-statement "8.4 Compound statement or block [stmt.block]") of a [*handler*](except.pre#nt:handler "14.1 Preamble [except.pre]")

introduces a [*block scope*](#def:scope,block "6.4.3 Block scope [basic.scope.block]") that includes that statement or [*handler*](except.pre#nt:handler "14.1 Preamble [except.pre]")[.](#1.sentence-1)

[*Note [1](#note-1)*:

A substatement that is also a block has only one scope[.](#1.sentence-2)

â *end note*]

A variable that belongs to a block scope is a [*block variable*](#def:block_variable "6.4.3 Block scope [basic.scope.block]")[.](#1.sentence-3)

[*Example [1](#example-1)*: int i = 42;int a[10];

for (int i = 0; i < 10; i++) a[i] = i;

int j = i; // j = 42 â *end example*]

[2](#2)

[#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/basic.tex#L1423)

If a declaration
that is not a name-independent declaration and
that binds a name in the block scope S of a

- [(2.1)](#2.1)

[*compound-statement*](stmt.block#nt:compound-statement "8.4 Compound statement or block [stmt.block]") of a [*lambda-expression*](expr.prim.lambda.general#nt:lambda-expression "7.5.6.1 General [expr.prim.lambda.general]"),[*function-body*](dcl.fct.def.general#nt:function-body "9.6.1 General [dcl.fct.def.general]"), or [*function-try-block*](except.pre#nt:function-try-block "14.1 Preamble [except.pre]"),

- [(2.2)](#2.2)

substatement of a selection or iteration statement
that is not itself a selection or iteration statement, or

- [(2.3)](#2.3)

[*handler*](except.pre#nt:handler "14.1 Preamble [except.pre]") of a [*function-try-block*](except.pre#nt:function-try-block "14.1 Preamble [except.pre]")

potentially conflicts with a declaration
whose target scope is the parent scope of S,
the program is ill-formed[.](#2.sentence-1)

[*Example [2](#example-2)*: if (int x = f()) {int x; // error: redeclaration of x}else {int x; // error: redeclaration of x} â *end example*]
