1.代码块:用“{}”分块出来的区域叫做代码块。
2.作用域:
变量声明位置 | 变量声明位置 | 变量作用域范围 |
文件作用域 | 代码块外 | (声明处,源文件结尾) |
代码块作用域 | 代码块内 | (声明处,代码块结尾) |
原型作用域 | 函数声明中的参数 | 只适用函数声明中的参数名 |
函数作用域 | 略 | 略 |
示例:
int func(int a, int b);
int func(int m, int n)
{
return m+n;
}
3.变量的存储类型:
静态内存、堆栈、寄存器。
区分变量存在于静态内存还是在动态内存中的关键是这个变量是否在代码块中,或者是否声明为静态变量(static)。
变量类型 | 声明位置 | 是否存于堆栈 | 作用域 | 若声明为static |
全局 | 所有代码块之外 | 否 | 从声明处带文件尾 | 不允许从其他的源文件访问 |
局部 | 代码块的起始处 | 是 | 整个代码块 | 变量不存于堆栈中,值在程序整个执行期保持 |
形式参数 | 函数头部 | 是 | 整个函数 | 不允许 |