转 http://blog.csdn.net/haitaolang/article/details/69944392
C++ 标识符的作用域
包括:局部作用域、全局作用域、文件作用域、函数作用域、函数原型作用域、名空间作用域、类作用域
注意:潜在作用域,也就是同名变量的作用域问题。
1. 局部作用域
指在函数定义或者复合语句中,从标识符的定义点开始到函数或者复合语句结束之间的程序段。
在同一个局部作用域内不能出现相同名字的两个局部变量(包括形参)。
一个函数内的复合语句又是一个局部作用域,也就是在函数内有某个变量时,复合语句中可以有另外一个同名字的变量。
2. 全局作用域
指对构成C++程序的所有源文件。
在C++标准中,把全局作用域归于连接控制范畴。
通常把全局标识符的生命放在某个头文件中。
3. 文件作用域
指单独的一个源文件。
在全局标识符的定义中加上static修饰符,该全局标识符就变成了具有文件作用域的标识符。
4. 函数作用域
指由整个函数定义所构成的程序段。
语句标号(如goto语句中使用的语句标识)是唯一的具有函数作用域的标识符。
5. 函数原型作用域
指用于函数声明的函数原型,其中的形参的作用域从函数原型开始到函数原型结束。
如:void f(int x, double y); //其中的x和y的作用域从“(”开始到")"结束。
6. 名空间作用域
无名的名空间定义不能在其他地方调用
7. 类空间作用域
转 http://blog.csdn.net/pengwentao/article/details/9948777
块作用域
块是函数中一对花括号(包括函数定义所使用的花括号)所括起的一段区域。在块内说明的标识符具有块作用域,它开始于标识符被说明的地方,并在标志该块结束的右花括号处结束。如果一个块内有一个嵌套块,并且该块内的一个标识符在嵌套块开始之前说明,则这个标识符的作用域包含嵌套块。函数的形参具有块作用域,其开始点在标志函数定义开始的第一个左花括号处,结束于 标志函数定义结束的右花括号处,例如:
void f( int x )
{
//形参互的作用域开始于此
int y=3; //局部变量y的作用域开始于此
{
int z=y+2;//y的作用域该嵌套块的作用域,所以y在该块内可见
//...
}
int k;//k的作用域开始于此
}
本文详细介绍了C++中不同类型的标识符作用域,包括局部作用域、全局作用域、文件作用域等。通过具体例子帮助理解各种作用域的特点及使用场景。

2530

被折叠的 条评论
为什么被折叠?



