[应用方案] 全局变量和局部变量重名

[复制链接]
1120|14
 楼主| janewood 发表于 2023-8-20 12:53 | 显示全部楼层 |阅读模式
当局部变量和全局变量重名的时候,局部变量在其定义域的优先级更高,全局变量会自动被忽视,如果我们想要用到全局变量,我们可以在全局变量前加上::作用域运算符,因为C++里定义当缺省左侧对象时默认为全局变量

代码:

#include<iostream>

using namespace std;

int x=100;

int main(){

int x=10;

cout<<x<<endl;//输出为10

cout<<::x;//输出为100

}


cashrwood 发表于 2023-9-12 16:35 | 显示全部楼层
当全局变量和局部变量重名时,局部变量会隐藏(或覆盖)全局变量。在函数内部,如果存在与全局变量同名的局部变量,那么在函数内部使用该变量时,将使用局部变量的值而不是全局变量的值。
kkzz 发表于 2023-9-12 18:48 | 显示全部楼层
在编程中,全局变量和局部变量重名是指它们在名称上是相同的,但作用域不同。
modesty3jonah 发表于 2023-9-12 19:03 | 显示全部楼层
全局变量是指在程序启动时定义的变量,可以在整个程序中访问。局部变量是指在函数内部定义的变量,只能在定义该函数的范围内访问。
ingramward 发表于 2023-9-12 20:17 | 显示全部楼层
全局变量是在整个程序中都可见和可用的变量,而局部变量是在特定函数或代码块中定义的变量。
robincotton 发表于 2023-9-12 21:40 | 显示全部楼层
在使用全局变量时,应该尽量避免与局部变量重名,以免造成混淆。
mnynt121 发表于 2023-9-13 16:08 | 显示全部楼层
如果需要在函数内部修改全局变量的值,可以使用 global 关键字来声明变量是全局的。
rosemoore 发表于 2023-9-13 18:40 | 显示全部楼层
在编写代码时,建议尽可能避免全局变量的使用,以减少代码的复杂性和出错率。
everyrobin 发表于 2023-9-17 10:07 | 显示全部楼层
全局变量的值在程序启动时就被初始化,而局部变量的值在函数内部定义时被初始化。 全局变量对所有函数和程序都可见,而局部变量只能在定义该函数的函数内部访问。
uptown 发表于 2023-9-17 11:05 | 显示全部楼层
当全局变量和局部变量重名时,局部变量会屏蔽全局变量,即在局部作用域内,只有局部变量存在,全局变量被忽略。
benjaminka 发表于 2023-9-17 11:13 | 显示全部楼层
尽量避免使用全局变量和局部变量重名
sesefadou 发表于 2023-9-17 15:09 | 显示全部楼层
在C语言中,全局变量和局部变量都可以重名。
lihuami 发表于 2023-9-17 16:15 | 显示全部楼层
当全局变量和局部变量重名时,在局部作用域内,局部变量将具有更高的优先级,并且将覆盖全局变量的值。
hudi008 发表于 2023-9-17 19:36 | 显示全部楼层
当函数返回时,局部变量被销毁,全局变量重新可见。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

1560

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部