相关疑难解决方法(0)

int argc,char*argv []是什么意思?

在许多C++ IDE和编译器中,当它为您生成主函数时,它看起来像这样:

int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)

当我在没有IDE的情况下编写C++代码时,只需使用命令行编译器,我输入:

int main()
Run Code Online (Sandbox Code Playgroud)

没有任何参数.这意味着什么,对我的计划至关重要?

c++ parameters argv command-line-arguments argc

476
推荐指数
8
解决办法
81万
查看次数

关于'main(int argc,char*argv [])'

可能重复:
main()的参数是什么?
int argc,char*argv []是什么意思?

每个程序都从main(int argc, char *argv[])定义开始.

我不明白这意味着什么.如果我们在程序中不使用这些参数,有人可以解释为什么我们会使用这些参数,我会很高兴的吗?为什么不int main()呢:?

程序的名称是其中的一个元素,*argv[]并且argc是参数个数的计数*argv[]?发送到的其他参数是*argv[]什么?我们如何发送它们?

c argv argc

93
推荐指数
3
解决办法
48万
查看次数

argv中的字符串是否可修改?

我刚写了一个小程序,用C语言读取命令行参数,没什么太难的.我也在修改它们,例如将参数的第一个字符更改为大写.

我知道你不应该修改字符串文字,因为它可能导致未定义的行为,所以只是想知道*argv[]你不应该改变文字中的字符串.

int main(int argc, char *argv[])
Run Code Online (Sandbox Code Playgroud)

c string argv command-line-arguments

26
推荐指数
1
解决办法
1651
查看次数

当你不遵循argv和argc的做法时会发生什么

可能的重复:
main(int argc,char*argv [])
Main的C签名

如果我写:

int main(int argc, char** argv)
Run Code Online (Sandbox Code Playgroud)

我得到适当的命令行输入.如果我写的话怎么会说,

int main(int foo, double fooDouble, fooType FooVar)
Run Code Online (Sandbox Code Playgroud)

这是依赖于操作系统还是依赖于编译器?

c c++ command-line command-line-arguments

8
推荐指数
3
解决办法
941
查看次数

为什么argv的第一个参数是1而不是0

我有一些参数可以让程序正常工作。该参数应该是 MAX_NUM, x, y。

当捕获 char 输入列表的参数时,我当前使用参数 1 而不是 0 获取 MAX_NUM。

前任:

int main (int argc, char *argv[]) {
    int MAX_NUM = atoi(argv[0]);
    int x = atoi(argv[1]);
    int t = atoi(argv[2]);
    printf("MAX_NUM %d\n", atoi(argv[0]));
....

Run Code Online (Sandbox Code Playgroud)

打印argv[1]我正确地得到了 MAX_NUM,当打印第一个参数时得到 0。

为什么 C 将 char 输入列表数组初始化为 1 而不是 0 或程序名称?

c ansi-c

1
推荐指数
1
解决办法
1933
查看次数

为什么不能在for循环中评估“数组为NULL”?

我试图计算用于存储“ res”的数组的数组的元素,这些内存用于连接存储在“ argv”中的每个字符串,包括NULL终止符。可能会发现更多错误,但是我不了解的第一个错误是argv[a][b] != NULL在中/* length of arrays */。为什么这是不可接受的,还有其他方法(没有硬编码或传递长度)来确定元素数量?

使用的:http//pythontutor.com/c.html#mode=edit

char    *ft_concat_params (int argc, char **argv)
{
    int len_argc = argc - 1,
        len_argv = 0;
    char *res = NULL;

    /* length of argvs */
    for (int a = 0; a < len_argc; a++) {
      for (int b = 0;argv[a][b] != NULL; b++) {
        len_argv++;
      }
    }

    /* allocate memory res -- freed by calling function! */
    res = malloc (len_argv * sizeof …
Run Code Online (Sandbox Code Playgroud)

c for-loop multidimensional-array

-1
推荐指数
1
解决办法
85
查看次数