main函数括号里面有两个参数一个是int argc ,一个是char *argv【】。
int argc中argc是main函数运行时的参数个数,char *argv【】中的argv是参数的内容存在字符型指针数组中。
main函数的参数在一般写程序的时候用不到,只有在外部调试程序或者说是把自己写的程序当成命令行里的命令时用的比较多。例如:在windows中的dos命令行,输入dir就可以看见当前目录下的文件。输入md test就可以在当前目录下创建文件夹等等。其中像md这样的命令可以理解成我们自己写的程序编译生成出来的a.out,test可以理解成我们main函数中接收的外部参数。例如下面这段代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc,char *argv[])
{
int i = 0;
printf("argc = %d\n",argc);
for(i = 0;i < argc;i++)
printf("argv[%d] = %s\n",i,argv[i]);
if(argc > 1)
{
if(strcmp(argv[1],"test") == 0)
{
printf("test is created\n");
}
}
return 0;
}
你在编译运行这段程序之后,在不加任何参数的情况下,输出为:
argc = 1
argv[0] = md_me(我自己定义的生成的文件名)
当运行程序后面加参数了如md_me test,输出为:
argc = 2
argv[0] = md_me
argv[1] = test
test is created
这样就相当于自己写了一个向系统里添加命令的程序了。
所以对于程序的影响在于你的想法了,是测试自己的这段程序在系统中的运行状态,还是仅仅是为了看看自己的程序内部哪个部分有没有问题。 |