如何将argv [1]传递给一个带0个参数的函数?

use*_*120 0 c++ command-line-arguments

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

这是如何运作的?

const char *cPtr = argv[1];
Run Code Online (Sandbox Code Playgroud)

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

pax*_*blo 9

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

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

这不是我怎么做的.既然你需要能够改变fn()以获得访问权限x,我会重写它以传递参数:

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

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