| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 556 人关注过本帖
标题:不用形参指针,而用函数内部变量能否实现同样的功能
收藏  订阅  推荐  打印 
明天不一样
Rank: 2
等级:注册会员
帖子:121
积分:1318
注册:2006-8-31
不用形参指针,而用函数内部变量能否实现同样的功能

编写义递归函数,在二叉树中求位于先序序列中第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,而在函数内部定义一个变量,能否实现此函数的功能。

搜索更多相关主题的帖子: 变量  函数  指针  二叉树  形参  
2006-9-23 10:49
明天不一样
Rank: 2
等级:注册会员
帖子:121
积分:1318
注册:2006-8-31

急……

可怜可怜我吧!小弟知识贫乏,快要饿死了,大哥大姐你们行行好,给点编程知识吧!我会永远记住你们的恩情。
2006-9-23 11:24
明天不一样
Rank: 2
等级:注册会员
帖子:121
积分:1318
注册:2006-8-31

请教版主

可怜可怜我吧!小弟知识贫乏,快要饿死了,大哥大姐你们行行好,给点编程知识吧!我会永远记住你们的恩情。
2006-9-24 10:17
nuciewth
Rank: 12Rank: 12Rank: 12
来自:我爱龙龙
等级:版主
威望:93
帖子:9521
积分:95068
注册:2006-5-23

定义全局变量m.楼主应该是用m来记数结点的个数吧.

倚天照海花无数,流水高山心自知。
2006-9-24 10:24
nuciewth
Rank: 12Rank: 12Rank: 12
来自:我爱龙龙
等级:版主
威望:93
帖子:9521
积分:95068
注册:2006-5-23

在函数体内定义局部变量是没用的,递归时,每次的m都会重新赋值(一刚开始总得有初值).

倚天照海花无数,流水高山心自知。
2006-9-24 10:26
unicorn
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:14
帖子:1066
积分:10938
注册:2005-10-25

递归函数中可以
递归函数中的局部变量 对自己而言相当于全局变量 但当递归函数结束时 其生命周期也到了 只能在函数体内作为有效变量

unicorn-h.spaces.live.com ◇◆ sava-scratch.spaces.live.com  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-9-24 10:36
明天不一样
Rank: 2
等级:注册会员
帖子:121
积分:1318
注册:2006-8-31

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


可怜可怜我吧!小弟知识贫乏,快要饿死了,大哥大姐你们行行好,给点编程知识吧!我会永远记住你们的恩情。
2006-9-24 11:29
神vLinux飘飘
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:87
帖子:6085
积分:61226
注册:2004-7-17

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


泛出微微的蓝色的光,像有生命般涌动着,闪烁着,平滑而优美,达到了机械和美学结合的最高境界,向一件艺术品一样,默默的展示着,寂寞而孤傲,只有宇宙才能证实它的存在,只有永恒可以于它并存
2006-9-24 11:43
unicorn
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:14
帖子:1066
积分:10938
注册:2005-10-25

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


程序代码:

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


unicorn-h.spaces.live.com ◇◆ sava-scratch.spaces.live.com  noh enol ! pue pu!w hw u! shemle aq ll!m noh 
2006-9-24 11:44
神vLinux飘飘
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:87
帖子:6085
积分:61226
注册:2004-7-17

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

这个m有什么妙用?

泛出微微的蓝色的光,像有生命般涌动着,闪烁着,平滑而优美,达到了机械和美学结合的最高境界,向一件艺术品一样,默默的展示着,寂寞而孤傲,只有宇宙才能证实它的存在,只有永恒可以于它并存
2006-9-24 11:45
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.068059 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved