我不确定这是否是正确的方法。请参阅下面的代码。 我希望能够将一个参数列表传递给main,然后将其存储在另一个数组中。
所以,我想要用至少一个参数来启动程序......或者我喜欢的参数多。我可能会将最大参数设置为32。
例如
./ foo 3
或
./ foo 3 56 12 34 56 111 2222 33
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
int numbersEntered[argc];
if (argc <= 1){
printf("Not enough arguments entered\n");
exit(1);
}
printf("Arg count %i\n",argc-1);
for (i=1;i<argc;i++)
numbersEntered[i]=atoi(argv[i]);
for (i=1;i<argc;i++)
printf(" numbersEntered %i\n", numbersEntered[i]);
}
答案 0 :(得分:2)
已经是这种情况,argv
是一个指针数组,命令行上每个参数的一个指针(加上两个,实际上,第一个是程序的名称,然后是参数,以及然后终止NULL指针。
关于数组,问题是传统的C需要在编译时已知的大小,你不能只使用argc
;也就是说,像GCC这样的一些编译器以及更新的C标准确实允许它。