当前位置:首页 > 科技 > 正文

局部变量和全局变量重名时会出现什么情况(全局变量和局部变量重名时怎么办)

局部变量和全局变量重名时会出现什么情况(全局变量和局部变量重名时怎么办)

其实全局变量和局部变量重名时怎么办的问题并不复杂,但是又很多的朋友都不太了解局部变量和全局变量重名时会出现什么情况,因此呢,今天小编就来为大家分享全局变量和局部变量重名...

其实全局变量和局部变量重名时怎么办的问题并不复杂,但是又很多的朋友都不太了解局部变量和全局变量重名时会出现什么情况,因此呢,今天小编就来为大家分享全局变量和局部变量重名时怎么办的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

C++全局变量与局部变量同名什么处理?

如果全局变量与局部变量同名,在局部变量的作用域内,局部变量会隐藏全局变量,即在局部变量的作用域内使用的是局部变量。

如果全局变量和局部变量重名,局部变量将覆盖全局变量。

} main()函数中,定义了局部变量a,所以这里所有的a都是指局部变量,全局变量a在这里没有“立足之地”,当变量b则不同,由于在main()中没有梁歪定义。

解答问题前,先说明一下,当全局变量和局部变量同名时,要看当前代码所处的作用域,默认使用当前作用域内的同名局部变量。

这种情况两个d是可以区别的,因此b最后是使用全局变量d进行赋值。其次,如果局部变量和全局变量的类型与名称完全一致,在局部变量定义的有效域中,局部变量将覆盖全局变量。直到退出局部变量定义域,全局变量的定义才又重新可见。

C语言…外部变量与局部变量同名问题

如果全局变量和局部变量重名,局部变量将覆盖全局变量。

如果局部变量和全局变量同名,那么重名的全局变量将在同名的局部变量的作用域内隐藏。

开头那个a=5 指的是全局变量 static int a=10; 这一句是局部的静态变量。

如果全局变量与局部变量同名,在局部变量的作用域内,局部变量会隐藏全局变量,即在局部变量的作用域内使用的是局部变量。

全局变量:在函数之外定义的变量称为外部变量,亦称全局变量。(1)全局变量在程序的全部 过程中都占用存储单元。

说明:大致上就是这3部分,内和外有同名的,内将屏蔽外部变量。

当局部变量和全局变量具有相同的名称,会发生什么?

1、可以重名。当出现重名时, 在局部变量作用域内,全局变量失效。比如 int a;int fun(){ int a; xxx}在fun中,局部变量a生效。其他部分,全局变量a生效。

2、如果全局变量与局部变量同名,在局部变量的作用域内,局部变量会隐藏全局变量,即在局部变量的作用域内使用的是局部变量。

3、一般不会出错,如果在局部中定义了定义了相同名称的变量,那该变量的值只在该模块中有效,而与相同名称的全局变量没有关系。

4、double d = 0;void f() { int d = 5;double b = d; //全局变量,因此全局变量的类型更匹配 } 这种情况两个d是可以区别的,因此b最后是使用全局变量d进行赋值。

5、不会产生冲突,这时候局部变量起作用,即你的函数内部全局变量失效。在函数外部全局变量照常使用。

好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!

最新文章