函数里的变量不可返回。出问题。了。

afterry 2007-07-23 10:23:59
#include "Stdio.h"
#include "Conio.h"
int *min(int a,int b);

int main(void)
{
/* 此处添加你自己的代码 */


int x,y,*p;
/* int *min(int a,int b); */
scanf("%d%d",&x,&y);
p=min(x,y);
printf("%d",*p);

getch();
return 0;
}

int *min(int a,int b)
{
if (a > b)
return &a;
else
return &b;
}


输入 12 14 居然可以返回14。。
明明是出了函数a,b地址 就不可用了。。
什么回事???
...全文
150 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
arlenbibby 2007-07-23
  • 打赏
  • 举报
回复
编译器问题把 避免写出这种东西啦
cceczjxy 2007-07-23
  • 打赏
  • 举报
回复
有时候是能碰巧可用的.你返回指向函数内变量的指针的时候,就是返回的一个地址,该地址指向的空间在函数被释放后如果其空间没被其它地方使用,就会保留其原始值.就是你遇见的情况.
这是一种偶然现象.
只是说我们不能保证它是可用的.

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧