首页 > 解决方案 > C: 调用main时传入的store参数

问题描述

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

例如:我想存储 2 个用户输入的字符串变量。主要是这样调用的:

./main "Hello World!" World

我们应该存储“Hello World!” instring1和 "World" in 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;
}

标签: cstringvariables

解决方案


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

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

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

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

推荐阅读