C语言输出,谁能帮忙解释下原因呢?

#include <stdio.h>
void fun(int);

using namespace std;

int main(int argc)
{
    printf("%d ",argc);
    fun(argc);
    return 0;
}

void fun(int i){
    if(i!=4)
        main(++i);
} 
这个函数的输出是 1 2 3 4
能帮忙解释一下原因吗?还有这个东西属于哪个知识点的?

全部评论
int main( int argc, char* args[] )  ,不传参数 argc就是1 a.exe test test  argc就是3
点赞 回复 分享
发布于 2017-02-27 17:22
知识点是关于main函数的int argc,假设你编译完是a.exe 你再在控制台运行a.exe test test看看结果如何。 你可以搜下main函数argc argv[]
点赞 回复 分享
发布于 2017-02-25 17:40
程序名本身是一个参数,argc是统计命令行的参数个数。所以argc是1。递归调用。你把打印放在func(argc)后面就会逆序
点赞 回复 分享
发布于 2017-03-04 17:35
有一次看到别的函数还能调用Main函数的,孤陋寡闻了。
点赞 回复 分享
发布于 2017-02-25 18:05

相关推荐

每晚夜里独自颤抖:要求太多的没必要理
点赞 评论 收藏
分享
07-17 11:50
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务