有管C++中静态变量开内存的有关问题
有管C++中静态变量开内存的问题
[code=C/C++][/code]
#include<iostream.h>
void fun1(void);
void main()
{
static a ;
static b ;
cout<<"main:"<<"a:"<<a<<endl<<"b:"<<b<<endl;
fun1();
}
void fun1(void)
{
static a = 2;
static b = 5;
cout<<"fun1:"<<"a:"<<a<<endl<<"b:"<<b<<endl
}
上面代码中在 fun1 的a, b和在 main 中的a, b,他们是共享一个内存空间还是不同空间呢
------解决方案--------------------
因为编译器搜索变量就是按照作用域来搜索的。。。不然的话你在fun1里定义一个变量a,编译器不是要搜索所有其他函数里的定义了,因为按照作用域,所以可以只搜索fun1的作用域和全局作用域
[code=C/C++][/code]
#include<iostream.h>
void fun1(void);
void main()
{
static a ;
static b ;
cout<<"main:"<<"a:"<<a<<endl<<"b:"<<b<<endl;
fun1();
}
void fun1(void)
{
static a = 2;
static b = 5;
cout<<"fun1:"<<"a:"<<a<<endl<<"b:"<<b<<endl
}
上面代码中在 fun1 的a, b和在 main 中的a, b,他们是共享一个内存空间还是不同空间呢
------解决方案--------------------
因为编译器搜索变量就是按照作用域来搜索的。。。不然的话你在fun1里定义一个变量a,编译器不是要搜索所有其他函数里的定义了,因为按照作用域,所以可以只搜索fun1的作用域和全局作用域