程序当前没有输出任何内容。该程序用于获取整数命令行值,然后使用递归打印功能打印多次“测试”。我是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);
}
答案 0 :(得分:6)
因为你没有传递int:
i = atoi(argv[0]);
^
argument 0 is name of executable
可能是您的需要:
i = atoi(argv[1]);
答案 1 :(得分:2)
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").