C++ 标识符的作用域

本文详细介绍了C++中不同类型的标识符作用域,包括局部作用域、全局作用域、文件作用域等。通过具体例子帮助理解各种作用域的特点及使用场景。

转 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的作用域开始于此

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值