|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 求助,函数问题!
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
480
人关注过本帖
标题:
求助,函数问题!
只看楼主
加入收藏
梦想中国
等 级:
新手上路
威 望:
5
帖 子:539
专家分:0
注 册:2006-2-26
楼主
收藏
问题点数:0 回复次数:5
求助,函数问题!
师傅们好: 谁能告诉我下面的程序为什么输出结果是2,1,1
#include<stdio.h>
int decrement(int i);
int main(void)
{
int i=2;
i=decrement(i);
printf("%d\n",i);
return 0;
}
int decrement(int i)
{
printf("%d\n",i);
i--;
if(i>0)
decrement(i);
return i;
}
谢谢
搜索更多相关主题的帖子:
函数
2006-03-14 18:13
举报帖子
使用道具
赠送鲜花
cordier
等 级:
论坛游民
威 望:
1
帖 子:449
专家分:14
注 册:2006-2-9
第
2
楼
收藏
得分:0
#include<stdio.h>
int decrement(int i);
int main(void)
{
int i=2;
i=decrement(i);
printf("%d\n",i);
return 0;
}
int decrement(int i)
{
printf("%d\n",i);
i--;
if(i>0)
decrement(i);
return i;
}
应当是2,1,1因为主函数中有一句i=decrement(i);
在主函数调用decrement时,参数i=2;
当decrement第一次被调时,它的值i--就成了1。在递归(递归中显示1)后,它的值还是1返回到主函数。当然主函数显示1
2006-03-14 19:09
举报帖子
使用道具
赠送鲜花
giant
等 级:
新手上路
帖 子:180
专家分:0
注 册:2005-12-11
第
3
楼
收藏
得分:0
以下是引用
梦想中国
在2006-3-14 18:13:00的发言:
师傅们好: 谁能告诉我下面的程序为什么输出结果是2,1,1
#include<stdio.h>
int decrement(int i);
int main(void)
{
int i=2;
i=decrement(i);
printf("%d\n",i);
return 0;
}
int decrement(int i)
{
printf("%d\n",i);
i--;
if(i>0)
decrement(i);//注意你这里不等同于:return decrement(I),如果加了return 结果就是2,1,0
return i;
}
谢谢
2006-03-14 22:08
举报帖子
使用道具
赠送鲜花
cordier
等 级:
论坛游民
威 望:
1
帖 子:449
专家分:14
注 册:2006-2-9
第
4
楼
收藏
得分:0
不明白楼上的意思
我觉得
如果变成
return decrement(i),
那么最后一次递归时,它没有运行到return decrement(i)这一句。
那么返回值就有点意思
不知道我的理解是否有误!!高手指教
2006-03-14 22:27
举报帖子
使用道具
赠送鲜花
sunnvya
等 级:
贵宾
威 望:
17
帖 子:1094
专家分:0
注 册:2005-11-23
第
5
楼
收藏
得分:0
啊
寝室停电了
http://www. 第二站>>>提供源码下载
2006-03-14 22:32
举报帖子
使用道具
赠送鲜花
feng1256
等 级:
贵宾
威 望:
14
帖 子:2899
专家分:0
注 册:2005-11-24
第
6
楼
收藏
得分:0
以下是引用
梦想中国
在2006-3-14 18:13:00的发言:
师傅们好: 谁能告诉我下面的程序为什么输出结果是2,1,1
#include<stdio.h>
int decrement(int i);
int main(void)
{
int i=2;
i=decrement(i);
printf("%d\n",i);
return 0;
}
int decrement(int i)
{
printf("%d\n",i); /* 输出第一个2*/
i--;
if(i>0)
decrement(i); /* 传递的是i,而不是&i,注意,执行完decrement(); 其中要输出 1,又回到此函数中,i并未变化*/
return i; /*返回1*/
}
谢谢
叁蓙大山:工謪、稅務、嗣發 抱歉:不回答女人的问题
2006-03-14 22:45
举报帖子
使用道具
赠送鲜花
6
1/1页
1
快速回复:
求助,函数问题!
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.016498 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved