名字的作用域

本文探讨了程序中变量的作用域及其可见性规则,通过示例代码解释了局部变量与全局变量的区别,以及如何通过作用域操作符访问不同层级的同名变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

名字的有效区域始于名字的声明语句,以声明语句所在的作用域末端为结束。

名字main定义于所有的花括号之外,它和大多数定义在函数体之外的名字一样有全局作用域。一旦声明之后,全局作用域的名字在整个程序的范围内都能使用

如果定义在for语句内,在for语句内可以访问,但是在其他部分就不能访问了。


#include<iostream>
using namespace std;
int reused=42;   //reused拥有全局作用域 
int main()
{
	int unique=0;
	cout<<reused<<' '<<unique<<endl;   //输出42 0 
	int reused=0;
	cout<<reused<<' '<<unique<<endl;  //输出0 0 
	cout<<::reused<<' '<<unique<<endl;  //输出42 0 
	return 0;
}

可以看到,定义了一个同名的局部变量后,原全局变量并没有被覆盖,可以通过域操作符::来覆盖默认的作用域规则,因为全局作用域本身没有名字,所以当作用域操作符左侧为空时,向全局作用域发出请求获取作用域操作符右侧名字对应的变量。

-------------------------44--------------------------------



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值