c/c++中int main(int argc,char *argv[])的具体含义

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

argv为指针的指针

argc为整数

char **argv or: char *argv[] or: char argv[][]

main()括号内是固定的写法。

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

假设程序的名称为prog,

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

argc=1,表示只有一程序名称。

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

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

argc=2,表示除了程序名外还有一个参数。

argv[0]指向输入的程序路径及名称。

argv[1]指向参数para_1字符串。

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

argc=3,表示除了程序名外还有2个参数。

argv[0]指向输入的程序路径及名称。

argv[1]指向参数para_1字符串。

argv[2]指向参数para_2字符串。

voidmain(intargc,char*argv[])

char*argv[]:argv是一个指针数组,他的元素个数是argc,存放的是指向每一个参数的指针,

他的第一个元素即argv[0]为编译生成的可执行文件名(包括路径eg:"F:\VC\Ex1\Debug\Ex1.exe"),从二个元素(argv[1])开始,是每一个参数intargc表示argv的大小,是实际参数个数+1,其中+1是因为argv[0]是编译后的可执行文件名

main()主函数

每一C程序都必须有一main()函数,可以根据自己的爱好把它放在程序的某个地方。有些程序员把它放在最前面,而另一些程序员把它放在最后面,无论放在哪个地方,以下几点说明都是适合的。

1.main()参数在TurboC2.0启动过程中,传递main()函数三个参数:argc,argv和env。*argc:整数,为传给main()的命令行参数个数。*argv:字符串数组。在DOS3.X版本中,argv[0]为程序运行的全路径名;对DOS3.0以下的版本,argv[0]为空串("")。argv[1]为在DOS命令行中执行程序名后的第一个字符串;argv[2]为执行程序名后的第二个字符串;…argv[argc]为NULL。*env:安符串数组。env[]的每一个元素都包含ENVVAR=value形式的字符串。其中ENVVAR为环境变量如PATH或87。value为ENVVAR的对应值如C:\DOS,C:\TURBOC(对于PATH)或YES(对于87)。TurboC2.0启动时总是把这三个参数传递给main()函数,可以在用户程序中说明(或不说明)它们,如果说明了部分(或全部)参数,它们就成为main()子程序的局部变量。请注意:一旦想说明这些参数,则必须按argc,argv,env的顺序,如以下的例子:main()main(intargc)main(intargc,char*argv[])main(intargc,char*argv[],char*env[])其中第二种情况是合法的,但不常见,因为在程序中很少有只用argc,而不用argv[]的情况。以下提供一样例程序EXAMPLE.EXE,演示如何在main()函数中使用三个参数:

/*program name EXAMPLE.EXE*/#include <stdio.h>main(int argc, char *argv[], char *env[]){int i;printf("These are the %d command- line arguments passed to main:\n\n", argc);for(i=0; i<=argc; i++)printf("argv[%d]:%s\n", i, argv[i]);printf("\nThe environment string(s)on this system are:\n\n");for(i=0; env[i]!=NULL; i++)printf(" env[%d]:%s\n", i, env[i]);}

如果在DOS提示符下,按以下方式运行EXAMPLE.EXE:C:\examplefirst_argument"argumentwithblanks"34"lastbutone"stop!注意:可以用双引号括起内含空格的参数,如本例中的:"argumentwithblanks"和"Lastbutone")。结果是这样的:Thevalueofargcis7Thesearethe7command-lineargumentspassedtomain:argv[0]:C:\TURBO\EXAMPLE.EXEargv[1]:first_argumentargv[2]:argumentwithblanksargv[3]:3argv[4]:4argv[5]:lastbutoneargv[6]:stop!

_______________________________________________________

歌里唱的是“你离开我,就是旅行的意义”,

c/c++中int main(int argc,char *argv[])的具体含义

相关文章:

你感兴趣的文章:

标签云: