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