当前位置: 代码迷 >> C语言 >> 不用形参指针,而用函数内部变量能否实现同样的功能
  详细解决方案

不用形参指针,而用函数内部变量能否实现同样的功能

热度:335   发布时间:2006-09-23 10:49:43.0
不用形参指针,而用函数内部变量能否实现同样的功能

编写义递归函数,在二叉树中求位于先序序列中第K个位置的结点的值:
typedef struct node{
char data;
struct node *leftchile,*rightchile;
}Bitree; //定义二叉树结点类型

value(Bitree *p,int k,int *m) //k为要求的位置,m是指针,
{ //在函数value外部定义一变量
(*m)++; //初始化为0,把它的地址传入m中
if(*m==k)
{
printf("K的值:%d",p->data);
exit(0);
}
value(p->leftchile);
value(p->rightchile);
}

我的问题是:不定义函数形参指针m,而在函数内部定义一个变量,能否实现此函数的功能。

搜索更多相关的解决方案: 变量  函数  指针  二叉树  形参  

----------------解决方案--------------------------------------------------------
急……
----------------解决方案--------------------------------------------------------
请教版主

----------------解决方案--------------------------------------------------------
定义全局变量m.楼主应该是用m来记数结点的个数吧.
----------------解决方案--------------------------------------------------------
在函数体内定义局部变量是没用的,递归时,每次的m都会重新赋值(一刚开始总得有初值).
----------------解决方案--------------------------------------------------------
递归函数中可以
递归函数中的局部变量 对自己而言相当于全局变量 但当递归函数结束时 其生命周期也到了 只能在函数体内作为有效变量
----------------解决方案--------------------------------------------------------

也就是说在函数内部定义变量不能实现此功能了


----------------解决方案--------------------------------------------------------

能否把要求再详细的说明一下,我理解能力低


----------------解决方案--------------------------------------------------------

如果变量只是想在递归函数体内使用就可以实现,例

程序代码:

void recursion(int a,int b)
{
a--;
b++;
if(n==0) return;
recursion(a,b);
printf(\"递归函数:%d\n\",b);// 虽然b是局部变量但每次调用,b的值都变化
}


----------------解决方案--------------------------------------------------------
我的问题是:不定义函数形参指针m,而在函数内部定义一个变量,能否实现此函数的功能。
----------------------------------------------------------------------------------

这个m有什么妙用?
----------------解决方案--------------------------------------------------------
  相关解决方案