C – 将可变数量的参数传递给 main



我不确定这是否是正确的方法。请参阅下面的代码。我希望能够将参数列表传递给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 enteredn");
            exit(1);
    }
    printf("Arg count  %in",argc-1);

    for (i=1;i<argc;i++)
            numbersEntered[i]=atoi(argv[i]);
    for (i=1;i<argc;i++)
            printf(" numbersEntered %in", numbersEntered[i]);

}

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

关于数组,问题是传统的C需要一个在编译时已知的大小,你不能只使用argc;也就是说,一些编译器,如GCC,以及最近的C标准,确实允许它。

相关内容

  • 没有找到相关文章

最新更新