麻烦帮解析下代码运行结果
#include<iostream.h>
int global_value=1;
void display(void)
{
int local_value=1;
static int static_value=1;
cout<<"The global value is"<<global_value<<"\n";
cout<<"The local value is"<<local_value<<"\n";
cout<<"The static value is"<<static_value<<"\n";
global_value=global_value+1;
local_value=local_value+1;
static_value=static_value+1;
return;
}
int main()
{
while(global_value<4) display();
return 0;
}
为什么输出的local value 3次都是1呢,没有变呢,而其他两个则有增了呢?
[解决办法]
int local_value=1;
这是一个局部变量,在display函数结束时,就会销毁掉。
当你再次进入display函数时,这个变量还是被初始化为1.
[解决办法]
最上面那个gobal是全局变量
static int static_value=1 这个是静态局部变量 第一次定义后 重复定义会被忽略
local value 这个是局部变量 每次调用函数都会重新定义