作用域(scope)
参考:C Primer Plus 第6版 第12章 存储类别、链接和内存管理
1. 分类
2. block scope / 块作用域
2.1. 定义
- block / 块 是用一块花括号括起来的代码区域
- 块作用域变量的范围是从定义处到包含该定义块的末尾
- 声明在内层块中的变量,其作用域仅局限于该声明所在的块
2.2. 函数的形式参数
虽然函数的形式参数声明在函数的花括号之前,但是它们也具有块作用域,属于函数体这个块。
// 形参 a 和 b 属于 function 函数这个块,
// 作用域仅局限于该函数
void function(int a, int b){
return a+b;
}
2.3. 块中的变量定义
之前,具有块作用域的变量都必须声明在块的开头。C99 标准放开了这个限制:允许在块中的任意位置定义变量。
因此,for 循环语句的代码可以写成如下形式:
// 形参 a 和 b 属于 function 函数这个块,
// 作用域仅局限于该函数
for(int i=0; i<10; i++)