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

  • 本文关键字:int 参数 默认 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++ 中到底做了什么?我知道没有它们,应用程序仍然可以编译,但它们有什么用?

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

$ ./a.out arg1 arg2 

argv的内容将是一个字符串数组,其中包含

  1. [0] "a.out" - 可执行文件的文件名始终是第一个元素
  2. [1] "arg1" - 其他参数
  3. [2] "arg2" - 我通过了

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 = %sn", i, argv[i]);
    }
    return 0;
}

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

这些用于命令行参数。 argc是参数的数量,参数存储为以 null 结尾的字符串数组 (argv (。通常,没有传入命令行参数的程序仍将存储在argv中;即,用于执行程序的名称(不会总是存在,具体取决于程序的执行方式,但我不记得当时的情况是什么(。

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

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

相关内容

最新更新