读书人

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

发布时间: 2012-09-19 13:43:54 作者: rapoo

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;
}
}
就算是这样也是可以的,大括号里面就近原则,大括号外面不能用大括号里面的变量。
[解决办法]

探讨

就近引用原则。

读书人网 >C++

热点推荐