转自:http://zhengzhixin2272.spaces.live.com/Blog/cns!D81ECC250BFB97C5!155.entry
命令行参数(C语言)
今天终于把命令行参数整明白了,下面就说说我对命令行参数的理解,有不对的地方还望高手指正。
在C语言中,可以在程序执行时将命令行参数传递给程序。调用main()函数时它会带有两个参数,即
main(int argc, char *argv[])
{
...
}
{
...
}
第一个参数argc的值表示运行程序是命令行参数的数目;第二个参数*argv[]是一个指向字符串数组的指针,每个字符串对应一个参数。
我们来看一个简单的程序:
我们来看一个简单的程序:
#include <stdio.h>
#include <stdlib.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int i;
for(i = 1; i < argc; i++)
printf("%s%s",argv[i], (i < argc - 1) ? " " : "");
printf("/n");
system("PAUSE");
return 0;
}
{
int i;
for(i = 1; i < argc; i++)
printf("%s%s",argv[i], (i < argc - 1) ? " " : "");
printf("/n");
system("PAUSE");
return 0;
}
将程序编译后生成可执行文件,这里命名为Project-1.exe,路经为D:/C/Project-1/Project-1.exe。
注意,此代码在编译环境中运行是没有效果的,必须在DOS下运行。
进入DOS环境,进入D:/C/Project-1>,输入
注意,此代码在编译环境中运行是没有效果的,必须在DOS下运行。
进入DOS环境,进入D:/C/Project-1>,输入
Project-1 Hello world
将会打印出
Hello world
按照C语言的约定,argv[0]的值是启动该程序的程序名,因此argc的值至少为1。如果argc的值为1,则说明程序名后面没有命令行参数。在上面的例子中,argc的值为3,argv[0]、argv[1]和argv[2]的值分别为“Project-1”、“Hello”和“world”。