0

我不确定这是否是正确的方法。请参阅下面的代码。我希望能够将参数列表传递给 main,然后将其存储在另一个数组中。

所以,我想用至少 1 个参数启动程序……或者我喜欢的尽可能多的参数。我可能会将最大参数数量设置为 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]);

}

4

1 回答 1

2

情况已经如此,argv是一个指针数组,命令行上的每个参数都有一个指针(加上两个,实际上,第一个是程序的名称,然后是参数,然后是终止的 NULL 指针)。

关于数组,问题在于传统 C 需要一个在编译时已知的大小,您不能只使用argc; 也就是说,像 GCC 和更新的 C 标准这样的一些编译器确实允许这样做。

于 2013-09-16T22:54:20.933 回答