很多人学习了很久c,c++对其中的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]是编译后的可执行文件名

posted on 2013-10-28 15:56  andy071001  阅读(251)  评论(0编辑  收藏  举报