The portion of the program where an identifier can be used is known as its scope. For example, when we declare a local variable in a block, it can be referenced only in that block and in blocks nested within that block. This section discusses block scope, function scope, global namespace scope and function-prototype scope. Later we’ll see two other scopes—class scope (Chapter 9) and namespace scope (Chapter 21).