| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 772 人关注过本帖
标题:主函数调用
只看楼主 加入收藏
jiangwu10057
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:341
专家分:667
注 册:2009-3-25
结帖率:88.89%
收藏
已结贴  问题点数:20 回复次数:2 
主函数调用
程序代码:
#include <stdio.h>



int main()

{

char key;

((key=getchar())!=10)&&main(),putchar(key);

}
例如我输入:1afafjaf
从程序的执行结果可以看到字符被逐个打印出来了。

补充一句:书上的东西不一定都是对的,别人说的也不一定是对的,只有通过机子验证出来的结果才是有效的,所以编程中有任何疑问自己都可以在机子上调试,调试其实是一个收获的过程,它可以加深你对编程语言的原理进行深入理解。

忘了说了:由于这个函数是自己调用自己,所以是一个递归的过程,所以是逆序输出的。
这个是我看帖子的时候看到
可是为什么是逆序输出·?
搜索更多相关主题的帖子: 函数 
2010-01-31 16:03
h978147355
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:63
专家分:187
注 册:2009-12-29
收藏
得分:20 
这个程序可以这样理解

程序代码:
#include <stdio.h>
int main()

{

char key;

(key=getchar())!=10&&main();
putchar(key);
getch();
}
这样看是不是明了多了
程序流程
先输入一个字符,如果输入的字符的ascii是10(也就是换行符)则&&后面的不运行,否则运行
然后就是函数递归了
不过写这个程序的人也太……
调用主函数是不提倡的,因为会引起程序运行时出现过多的堆,从而消耗大量内存,运行时容易出现问题。
2010-02-01 08:07
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
...

★★★★★为人民服务★★★★★
2010-02-01 11:38
快速回复:主函数调用
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.034094 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved