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-15 11:41
门头沟学院 Java
点赞 评论 收藏
分享
05-26 10:24
门头沟学院 Java
qq乃乃好喝到咩噗茶:其实是对的,线上面试容易被人当野怪刷了
找工作时遇到的神仙HR
点赞 评论 收藏
分享
06-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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