请教个指针函数问题。非常之不解

zbking zbking 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码如下
#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编译的。谢谢!
...全文
评论 7
收藏 已收藏
分享
返回顶部
zbking
VC.NET 7,538 成员 27,670 内容