读书人

局部变量全局变量的指针赋值的有关问

发布时间: 2012-09-25 09:55:58 作者: rapoo

局部变量,全局变量的指针赋值的问题
代码如下:
#include <iostream>
using namespace std;

int* pint;
void fun1()
{
int a = 10;
pint = &a;
}
void fun0()
{
fun1();
int b = 11;
cout<<pint<<" 0 "<<*pint<<endl;
pint = &b;
}
void fun()
{
fun0();
cout<<pint<<" 1 "<<*pint<<endl;
}
void main()
{
fun();
cout<<pint<<" 2 "<<*pint<<endl;
}
输出结果如下:
0012FE7C 0 10
0012FEDC 1 4200563
0012FEDC 2 1244972
我不明白的是:为什么fun0()里*pint的值是10,而fun()里的*pint的值不是11!
求解答!

[解决办法]

探讨我听到一种说法是:当调用函数完成后,才真正释放掉被调函数的内容,即:当fun0()函数完成操作之后才真正释放fun1()里的内容,后来我在fun1()里在调用我随便写的fun2(),然后fun0()的*pint的输出值就变得随机了,这是不是就验证了那个书法呢?!

读书人网 >C++

热点推荐