一、作用域是什么?
当变量被声明后,只有在程序的一定区域内才能被访问,
此区域由标识符的作用域决定。
二、作用域分类
1.代码块作用域
位于一对花括号之间的所有语句叫做一个代码块。在代码块中声明的标识符都有代码块作用域,可以被代码块中的所有语句访问。
ps:函数的形参在函数内部也具有代码块作用域。
特:
1,代码块处于嵌套状态时,内部的标识符不能在外部访问。
2,当内部声明的标识符与外部代码块重名时,在内部代码块中外层的标识符便无法通过名字访问。
2.函数作用域
函数作用域只适用于语句标签(如goto语句)。使用规则:一个函数的所有语句标签必须唯一。
goto语句的作用域是一个函数作用域的大小,而不是一个代码块。
3.文件作用域
所有代码块之外的声明的标识符都具有文件作用域,即作用域为从声明之处到所在源文件结尾。文件中定义的函数名也具有文件作用域。
ps:头文件中编写再通过#include引用的函数作用域不限于头文件的文件尾。
4.原型作用域
原型作用域只适用于函数原型中声明的参数。参数名字并非必须(也可任意取),也不必与函数定义时的形参名相匹配,也不必与函数调用的实参想匹配。作用在于放置参数名与程序其他的部分的名字冲突。