int main(int argc,char* argv[])详解

argc是命令行总的参数个数 
 
 
  argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数   
 
  命令行后面跟的用户输入的参数,比如:   
 
  int    main(int    argc,    char*    argv[])   
 
   
 
  int    i;   
 
  for    (i      0;    i<argc;    i++)   
 
  cout<<argv[i]<<endl;   
 
  cin>>i;   
 
  return    0;   
 
   
 
  执行时敲入   
 
  F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE    aaaa    bbb    ccc    ddd   
 
  输出如下:   
 
  F:\MYDOCU~1\TEMPCODE\D1\DEBUG\D1.EXE   
 
  aaaa   
 
  bbb   
 
  ccc   
 
  ddd   
--------------------------------------------------------------------
char 
  *argv[]是一个字符数组,其大小是int    argc,主要用于命令行参数    argv[]    参数,数组里每个元素代表一个参数;
比如你输入 
 
 
  test    a.c    b.c    t.c   
 
  则   
 
  argc       
 
     
 
  argv[0]      "test"   
 
  argv[1]      "a.c"   
 
  argv[2]      "b.c"   
 
  argv[3]      "t.c"
-------------------------------------------------------------------------------------------- 
 
argc记录了用户在运行程序的命令行中输入的参数的个数。 
 
arg[]指向的数组中至少有一个字符指针,即arg[0].他通常指向程序中的可执行文件的文件名。在有些版本的编译器中还包括程序
文件所在的路径。
-------------------------------------------------------------------------
在调用一个可执行程序时,某些情况下需要向程序传递参数。如我们可以在控制台中键入notepad.exe,
回车后将执行记事本程序。如果我们希望在打开notepad时同时打开一个文本文件,可以在notepad.exe 
 
后面跟上文件的路径和名字,如notepad.exe 
  example.txt(文件在当前路径)。   
 
     
 
  那么程序中如何能得到这些输入参数呢?这个工作是编译器帮我们完成的,编译器将输入参数的信息
放入main函数的参数列表中。 
 
 
     
 
  main函数的参数列表保存了输入参数的信息,第一个参数argc记录了输入参数的个数,   
 
  第二个参数是字符串数组的,字符串数组的每个单元是char*类型的,指向一个c风格字符串。   
 
  以notepad.exe    example.txt为例   
 
  argc是2,就是说argv数组中有两个有效单元   
 
  第一单元指向的字符串是"notepad.exe"   
 
  第二单元指向的字符串是"example.txt"   
 
     
 
  argv数组中的第一个单元指向的字符串总是可执行程序的名字,以后的单元指向的字符串依次是程序调用时的参数。   
 
     
 
  这个赋值过程是编译器完成的,我们只需要读出数据就可以了。
-----------------------------------------------------------------------------

int 
      main(    int    argc      char    *argv[]      char    *envp[] 

猜你喜欢

转载自blog.csdn.net/u012158332/article/details/78675640
今日推荐