C / C ++中的默认int主参数

时间:2013-06-11 13:35:34

标签: c++ c

我正在搞乱C / C ++中的项目,我注意到了这一点:

C ++

#include <iostream.h>

int main (int argc, const char * argv[]) {
    // insert code here...
    cout << "Hello, World!\n";
    return 0;
}

C

#include <stdio.h>

int main (int argc, const char * argv[]) {
    // insert code here...
    printf("Hello, World!\n");
    return 0;
}

所以我总是想知道这个,这些默认参数在int main下的C / C ++中究竟做了什么?我知道应用程序仍然会在没有它们的情况下编译,但它们的用途是什么?

4 个答案:

答案 0 :(得分:6)

它们保存在命令行上传递给程序的参数。例如,如果我有程序a.out,我就这样调用它:

$ ./a.out arg1 arg2 

argv的内容将是包含

的字符串数组
  1. [0] "a.out" - 可执行文件的文件名始终是第一个元素
  2. [1] "arg1" - 其他参数
  3. [2] "arg2" - 我通过了
  4. argc保存argv中的元素数量(在C中,您需要另一个变量来了解数组中传递给函数时有多少元素)。

    您可以使用这个简单的程序自己尝试:


    <强> C ++

    #include <iostream>
    
    int main(int argc, char * argv[]){
        int i;
        for(i = 0; i < argc; i++){
            std::cout << "Argument "<< i << " = " << argv[i] << std::endl;
        }
        return 0;
    }
    

    <强> C

    #include <stdio.h>
    
    int main(int argc, char ** argv){
        int i;
        for(i = 0; i < argc; i++){
            printf("Argument %i = %s\n", i, argv[i]);
        }
        return 0;
    }
    

答案 1 :(得分:2)

如果你想通过命令行接受参数,那么你需要使用main函数中的参数.argc是参数count和charecter指针数组列出参数。 请参阅此链接http://www.cprogramming.com/tutorial/c/lesson14.html

答案 2 :(得分:1)

这些是针对命令行参数的。 argc是参数的数量,参数存储为以null结尾的字符串数组(argv)。通常,没有传入命令行参数的程序仍然会有一个存储在argv中的程序;也就是说,用于执行程序的名称(根据程序的执行方式,它不会一直存在,但我不记得是什么情况)。

答案 3 :(得分:1)

argc argv 是命令行参数在C和C ++中传递给main()的方式。

argc 将是 argv 指向的字符串数量,这通常比从终端传递的参数数量多一个,因为通常第一个是该计划的名称。