我想知道在编译时如何在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;
}
答案 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]
是世界