c++ - 如何将 argv[1] 传递给带有 0 个参数的函数?

标签 c++ command-line-arguments

我究竟需要做什么才能将 argv[1] 的内容传递给不使用参数的函数?

这是如何工作的?

const char *cPtr = argv[1];

并将其传递给带有 0 个参数的 someFunction()!

最佳答案

如果您不想将其作为参数传递,则需要将其放入全局变量中,以便函数可以通过这种方式访问​​它。我不知道其他方法(除了愚蠢的事情,比如将它写入 main() 中的文件并在函数中读取它):

static char *x;
static void fn(void) {
    char *y = x;
}
int main (int argc, char *argv[]) {
    x = argv[1];
    fn();
    return 0;
}

这不是我会做的。由于您无论如何都需要能够更改 fn() 以访问 x,因此我将重写它以传递参数:

static void fn(char *x) {
    char *y = x;
}
int main (int argc, char *argv[]) {
    fn(argv[1]);
    return 0;
}

当然,除非这是家庭作业、脑筋急转弯或面试题。

关于c++ - 如何将 argv[1] 传递给带有 0 个参数的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/568301/

相关文章:

c++ - map 和列表的迭代器显示不同的行为

r - 变量 ‘group’ 已在 ‘linfct’ 中指定,但在 ‘model’ 中找不到!

linux - 可以传递给 SQL*Plus 的命令行参数的最大长度?

python - argparse 的逗号分隔输入而不是空格分隔输入

c# - 命令行参数问题

c - vstudio 中的 argc 和 argv - 到上部回声

c++ - python和C之间共享配置文件格式?

c++ - 删除全局指针

c++ - 如何在 Qt 中获取硬件 ID

C++ 获取缓冲区的二进制值