
int a = 0
for (int i = 0i <10i++)
{
int b = i
b++
a += b
}
这对花括号在C++语法中就组成了一个块,变量b是在这个槐迹块内定义的.那么它就具有铅物并块作用域,当程序的控制流蚂培离开了这个循环,就是for循环结束时,这个变量b就被销毁了,不存在了,你在for循环的外部再引用变量b的话,程序就会报错:"变量b未定义".
作用域规耐培则告诉我们一个变量的有效范围,它在哪儿创建,在哪儿销毁(也就是说超出了作用域)。变量的有效作用域从它的定义点开始,到和定义变量之前最邻近的开括号配对的第一个闭括号。也就是说,作用域由变量所在的最近一对括号确定。有块作桥态用域{},昌消唯文件作用域,类作用域,全局作用域等。
一个标识符的作用域是程序中的一段区域,用于确定该标识符的可见性。当标识符在一段区域中可见时,就可以在带森该区域内使用此标识符。作用域有五种:1、块作用域(局部作用域)
2、文件作用域(全局作用域)
3、函数原型作用域
蠢纳亩 4、函数作用域
5、类作用域
文件作用域
在函数和类之外说明的标识符具有文件作用域,其作用域从说明点开始,在文件结束处结束。 如果标识符出现在头文件的文件作用域中,则它的作用域扩展到嵌入了这个头文件的程序文件中 ,直到该程序文件结束。
文件作用域茄轿包含该文件中所有的其他作用域。 在同一作用域中不能说明相同的标识符。 标识符的作用域和其可见性经常是相同的,但并非始终如此。
例如:
#include <iostream.h>
int i//文件作用域
void main()
{
i=5
{
int i//块作用域
i=7
cout <<"i=" <<i // 输出7
}
cout<<"i=" <<i//输出5
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)