c - 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;
}
解决方案
实际上main
声明是int main(int argc, char **argv);
or int main(int argc, char *argv[]);
,其中:
argc
是传递的参数数量**argv
或*argv[]
包含要传递的参数
所以你必须使用指针来传递参数(因为 main 被声明),没有其他方法。在您的示例 ( ./main "Hello World!" World
) 中,程序将收到:
argc
是 3argv[0]
是 ./mainargv[1]
是你好世界!argv[2]
是世界
推荐阅读
- reactjs - 选项不适用于 React Owl Carousel 2
- pyspark - 从多行中选择数据到一行
- python - 为什么过滤功能在这种情况下不起作用?
- ember.js - ember-intl 用于翻译 html
- python - 为什么 TensorFlow Flatten 层不改变输入形状?
- windows - 完全崩溃转储与小型转储?
- apache-spark - 使用 Pyspark 从 S3 读取时,Content-Length 分隔的消息体 SparkException 过早结束
- c# - 如何在 C# 中插入和搜索通用哈希表
- html - CSS 网格 - 图像问题
- javascript - 导出的对象返回“未定义”