命令行参数
C语言源程序经过编译和连接后,生成可执行程序后才能运行。
可执行程序又称为可执行文件或命令。
源程序test.c经编译、连接后生成可执行程序test.exe,它可以直接在操作系统环境下以命令方式运行。
例如,在DOS环境的命令窗口中,输入可执行文件名(假设test.exe放在DOS的当前目录下):
test< CR >
作为命令,就以命令方式运行该程序。
输入命令时,在可执行文件(命令)名的后面可以跟一些参数,也就是说,在一个命令行中可以包括命令和参数,这些参数被称为命令行参数。
例如,输入:
C:>test word< CR >
运行程序。其中,test是命令名,而world就是命令行参数。
命令行的一般形式为:
命令名 参数1 参数2···参数n
命令名和各个参数之间用空格分隔,也可以没有参数
用命令行的方式运行可执行文件时,命令名后是否有参数并不影响程序的运行结果。参数并不会被程序接受。
一般main函数的括号是空的,实际上,main函数可以有两个参数,用于接受命令行参数。
带有参数的main函数的第一行一般形式如下:
void main(int argc,char * argv[])
argc存放命令行中参数的个数,因为命令名或程序名也是命令行参数,所以argc的值至少为1
字符指针数组argv接受命令行参数。由于所有的命令行参数都被当做字符串来处理,所以字符指针数组argv的各元素依次指向命令行中输入的字符串,其中argv[0]指向命令,argv[1]指向第一个命令行参数,argv[2]指向第二个命令行参数,…argv[argc-1]指向最后一个命令行参数。
用命令行的方式运行程序时,main()函数被调用,与命令行有关的信息作为实参传递给两个参数。