[求助]c语言中的释放问题
被调用函数的参数在完了之后被释放,那么 z呢?会不会释放,为什么?
main ()
{
printf ("mIn is %d\n",min(a,b));
}
int min (x,y)
{ int x,y;
int z;
z=x<y?x:y;
return(z);
}
----------------解决方案--------------------------------------------------------
Z当然也会被释放啊 但它还是会返回到Main()中一个值,那个值是Z的一个副本。和Z没关系了。
----------------解决方案--------------------------------------------------------
#include <stdio.h>
int min(x,y);
int main(void)
{
int a = 10;
int b = 11;
printf ("Min is %d\n",min(a,b));
getchar();
return 0;
}
int min (x,y)
{
int x,y;
int z;
z=x<y?x:y;
return(z);
}
/* z 是 min 函数中的一个变量,min 函数结束了,z 就不存在了 */
/* return (z); 返回的是一个数值 */
/* 你不用去管它释不释放,min 函数结束之后,min 就不存在了 */
/* 释放 (不存在) */
/* OK */
----------------解决方案--------------------------------------------------------