c - 有没有办法获取 main() 的变量参数并在我自己的函数中使用它们?
问题描述
我是一名学生,学习如何用 c 编写代码,所以我基本上不知道自己在做什么,但无论如何这是我的代码。即使我在运行代码后拥有参数数量,但如果不实现某种参数限制,我也无法在我的函数中使用它们。
int main(int argc, char const *argv[])
{
max(argc -1, /* help please */)
return 0;
}
int max(int count, ...)
{
int max = INT_MIN;
int current = 0;
va_list arg;
va_start(arg, count);
for (int i = 0; i < count; i++)
{
current = va_arg(arg, int);
if (max < current)
{
max = current;
}
}
va_end(arg);
return max;
}
解决方案
您在这里不需要可变参数。只需传递argc
并argv
直接传递给您的函数并循环通过参数:
int max(int argc, char const *argv[])
{
int max = INT_MIN;
int current = 0;
int i;
for (i=1;i<argc;i++) {
current = atoi(argv[i]);
if (max < current)
{
max = current;
}
}
return max;
}
int main(int argc, char const *argv[])
{
max(argc, argv);
return 0;
}
推荐阅读
- python - 我可以使用 numpy 替换数组中的值,而不是生成新数组吗?
- matlab - 如何从 MATLAB 中的树状图中获取颜色?
- laravel - 如何在 laravel 验证中使用 OR?
- android - MediaRecorder.getSurface() 终止前台服务
- amazon-web-services - 红移卸载到 S3
- node.js - 从当前进程和子进程读取控制台输入
- javascript - Mongo查找子文档数组中的任何可能字段是否具有值
- android - 滚动视图不适用于多个垂直回收器视图
- jenkins - 詹金斯 java.io.FileNotFoundException:https://groovy.jfrog.io/artifactory/dist-release-local/groovy-zips/pache-groovy-binary-2.5.3.zip
- html - CSS flexbox 在元素之间添加随机间距