printf影响结果?
xhhxx 2012-01-11 10:58:08 学习郝斌老师的数据结构,第10讲“跨函数使用内存”中的选择题:
题目:通过调用fun函数,main函数中的指针变量p指向一个合法的整型变量的是:
B.
# include <stdio.h>
int fun(int * * q);
int main(void)
{
int * p;
fun(&p);
printf("*p = %d\n", *p);
return 0;
}
int fun(int * * q)
{
int s =555;
* q = &s;
printf("s = %d, **q = %d\n", s, **q); // 这行怎么了?
return **q;
}
/*
fun函数运行完毕,空间释放,*p应该是个随机值,但是——
在VC++6.0中,fun函数中若注释掉printf语句,则输出结果是*p = 555,不注释掉,就是这样的结果:
s = 555, **q = 555
*p = 4198612
用Wint-tc,运行结果跟fun函数中的printf语句没有关系。
有没有printf语句怎么会影响到*p的值?
我不知道这是怎么回事?期望高手解答。
*/