C:调用main时传递的存储参数

时间:2018-11-19 15:12:44

标签: c string variables

我想知道在编译时如何在C中存储参数:

例如:我想存储2个用户输入的字符串变量。 主要名称如下:

./main "Hello World!" World

我们应该存储“ Hello World!” string1中的“世界”和string2中的“世界” (假设我们只能使用main函数,而不能使用head函数),而无需使用指针。

编辑:这是我的代码仍然无效:

#include <stdio.h>
#include <err.h>

int  
main (int argc, char *argv[]) 
{
    if (argc != 2)
    { 
    errx(1, "Error");
    }
    printf("Number of arguments = %i\n", argc);
    for (int k = 0; k < argc; k += 1)
        {
        printf("argv[%i] = %s\n", i, argv[i]);
        }
return 0;
}

1 个答案:

答案 0 :(得分:0)

实际上,main声明是int main(int argc, char **argv);int main(int argc, char *argv[]);,其中:

  • argc是传递的参数数量
  • **argv*argv[]包含要传递的参数

因此,您必须使用指针传递参数(因为声明了main),没有其他方法。在您的示例(./main "Hello World!" World中,该程序将收到:

  • argc是3
  • argv[0]是./main
  • argv[1]是Hello World!
  • argv[2]是世界