C++中argc和argv

C/C++中关于main()函数中argc 和argv[]的说明

main(int argc,char *argv[]);

argc代表命令行输入参数的个数

argv存储了所有的命令行参数

如:源代码如下

#include <stdio.h>
int main(int argc, char ** argv)
{

int i;
    for (i=0; i < argc; i++)
        printf("Argument %d is %s.\n", i, argv[i]);
    return 0;
}

编译后产生hello.exe文件

在命令行下找到hello.exe的文件夹

输入如下命令:hello.exe a b c

则输出

Argument 0 is hello.exe.  Argument 1 is a.  Argument 2 is b.  Argument 3 is c.

C++:main (int argc,char **argv)

argc表示参数个数, char**argv是存储参数的指针数组。
如果你什么参数都没加,argc为1, argv[0] ="路径/myc.exe"
加了一个参数,argc为2 其实就是表示argv指针数组的大小。
argv[0] 为 “路径/myc.exe”;
argv[1] 为 第一个参数 以此类推。

C++ main函数 argc,argv传递参数的含义

main(int argc,char **argv)
   argv为指针的指针
   argc为整数
   char **argv or: char *argv[ ] or: char argv[ ][ ]
main()括号内是固定的写法。

下面给出一个例子来理解这两个参数的用法:

假设程序的名称为prog,

1.当只输入prog,则由操作系统传来的参数为:

  argc=1,表示只有一程序名称。
   argc只有一个元素,argv[0]指向输入的程序路径及名称:./prog

2.当输入prog para_1,有一个参数,则由操作系统传来的参数为:

argc=2,表示除了程序名外还有一个参数。
   argv[0]指向输入的程序路径及名称。
   argv[1]指向参数para_1字符串。

3.当输入prog para_1 para_2 有2个参数,则由操作系统传来的参数为:

argc=3,表示除了程序名外还有2个参数。
   argv[0]指向输入的程序路径及名称。
   argv[1]指向参数para_1字符串。
   argv[2]指向参数para_2字符串。

void    main(    int    argc,    char    *argv[ ]    )  
   char    *argv[]    :    argv是一个指针数组,他的元素个数是argc,存放的是指向每一个参数的指针,他的第一个元素即argv[0]为编译生成的可执行文件名(包括路径eg:"F:/VC/Ex1/Debug/Ex1.exe"),从二个元素(argv[1])开始,是每一个参数.
   int    argc    表示argv的大小,是实际参数个数+1,其中+1是因为argv[0]是编译后的可执行文件名

04-26 10:29