首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

C++全局变量声明和定义的有关问题

2012-09-19 
C++全局变量声明和定义的问题.int x3,y4 --全局变量int main(){int x3,y4 --局部变量}两个相同类型

C++全局变量声明和定义的问题.
int x=3,y=4; --全局变量


int main()
{
int x=3,y=4; --局部变量

}

两个相同类型相同名称的变量编译器居然通过了,那位大侠能告诉我这是为什么呢?

[解决办法]
就近引用原则。
[解决办法]
看书。 C++ Primer .
最基本的语法。
[解决办法]
作用域!!
[解决办法]
被屏蔽了
[解决办法]
楼主可以通过这样的办法来寻找答案:
#include<iostream.h>

int x=3,y=4; 
int main()
{
int x=5,y=6; 
cout<<x<<y<<endl;
return 0;
}

这段代码输出的结果是5,6
但如果你将int x=5,y=6; 
这行代码删去,答案就是3,4;这说明了在一个函数里,先找这个函数的变量是否存在,如果有这样的变量存在,则优先用这个函数的局部变量,如果没有,这用全局变量
[解决办法]
简单的说,就是名字虽然一样,但是他们的地址不一样
[解决办法]
楼上,UP
[解决办法]
一个大括号相当于一个作用域。
int main()
{
int a;
{
int a;
}
}
就算是这样也是可以的,大括号里面就近原则,大括号外面不能用大括号里面的变量。
[解决办法]

探讨

就近引用原则。

热点排行