请教个指针函数问题。非常之不解
代码如下
#include "stdafx.h"
int *pt()
{
int i=2,j=3,x;
x=i*j;
return &x;
}
int yt()
{
int i1=3,j1=3,x1;
x1=i1*j1;
return x1;
}
int _tmain(int argc, _TCHAR* argv[])
{
int j=0,i,x,y;
char a[12];
char *ap;
int *bp;
int (*bt)();//
int xt;
bp=pt();//
printf("(%d|%d)1\n",*bp,bp); //这里bp是正常的是6
bt=yt;
xt=bt();//运行完bp就变成9了
printf("(%d|%d)2\n",xt,&xt);
printf("%s\n","progarm is complete");
scanf("%d",&y);
return 0;
}
不知道为什么xt=bt()运行会把bp的6改成9,代码上看不出任何问题啊。求大神指导。用的VS2005 VC编译的。谢谢!