繁体   English   中英

C中的递归打印功能

[英]Recursive Printing Function in C

该程序当前不输出任何内容。 该程序应采用整数命令行值,然后使用递归打印功能打印“测试”该次数。 我是C语言的新手,无法弄清楚为什么程序无法正常工作,我没有收到任何编译错误。 (仍在努力熟悉gdb)

#include <stdio.h>

void myfunc(int num)
{
    if(num <= 0)
    {
        return;
    }
    else
    {
        printf("%s \n", "Test");
        myfunc(num-1);
        return;
    }
}

int main (int argc, char *argv[])
{
    int i;
    i = atoi(argv[0]);
    myfunc(i);
}

因为您没有传递int:

i = atoi(argv[0]);
              ^
             argument 0 is name of executable 

可能是您的需求:

i = atoi(argv[1]);

argv[0]保存可执行文件的名称,因此当您运行可执行文件时:

program.out 1 2

argv[0] will be "program.out", (they are all strings)
argv[1] will be "1",
and argv[2] will be "2".

只是为了完整起见,argc将保存argv中的元素数,因此在这种情况下argc will be 3 (integer 3, not string"3").

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM