int main(int argc, char *argv[])的具体使用疑惑

long long fabonacci(int n)
{
if (n == 0) return 0; // 基准情况 0
else if (n == 1) return 1;// 基准情况 1
else return fabonacci(n-1) + fabonacci(n-2); // 分解成小问题递归求解
}

int main(int argc, char *argv[])
{
if (argc != 2) {
fprintf(stderr, "Usage: %s N.\n", argv[0]);
return 0;
}

int n = atoi(argv[1]);
fprintf(stdout, "The %dth item in the Fibonacci sequence is %lld.\n",n,fabonacci(n));
return 0;

}

argc是命令行参数的数目。
argv是字符串数组,其元素分别是各个命令行参数。

举例:假如编译后生成的exe文件名为Test,在Dos提示符下输入:
Test abc efg
则argc = 3,argv[0] = "Test",argv[1] = "abe",argv[0] = "efg"
题目中假如编译后生成的exe文件名为CaclFabonacci,在Dos提示符下输入:
CaclFabonacci 15
则argc = 2,argv[0] = "CaclFabonacci",argv[1] = "15"

这样对照再看下题目的程序,应该就明白了。

如果对您有帮助,请采纳答案好吗,谢谢!