关于main()函数两个参数的意义和应用
我们学过C或者C++的同学所写的每个程序,都需要用到一个重要的函数—main(),无论是console程序还是windows程序,众所周知main()函数很重要,作为程序的入口函数有着重要的意义。刚开始我们写main(VOID);后来我们慢慢的写main(int argc,char* argv[]);虽然程序都可以运行,但是后一个更高级一点儿,后一个程序可以接受来自命令行的参数,实现很多的功能。下面重点来讲一下main(intargc,char* argv[])函数里面参数的意义:
int argc:接受的命令行参数的个数,如果没有显示的给出参数的话,会有一个默认的参数,即执行文件所在的绝对路径,这个默认的参数永远排在第一位,当CPU控制权移交的时候最先通过这个参数进行执行文件的查找,如果可执行的就把CPU控制权移交给这个执行文件,如果不可以执行的话会提示错误或者返回。
char* argv[]:接受的命令行参数对应个数的具体参数表达式,可以是数字、字母、一句话···都可以,我们前面说了,数组的第一个值永远是当前执行文件的绝对路径。
下面我写了一个具体的程序来进行测试:
#include "stdio.h"
int main(int argc,char* argv[])
{
for(int i=0;i<argc;i++)
{
printf("%d\n",i);
printf("%s\n",(char*)argv[i]);
}
printf("helloworld!\n");
getchar();
return 0;
}
上面就是程序的具体代码,很简单,遍历所有参数然后输出;编译执行即可,得到如下的界面和输出:
把它拷贝到D盘根目录下(因为测试的话在根目录下比较方便:);通过命令行启动(windows+r->cmd调出cmd程序,然后进入d盘,启动程序):
我们试着给程序加命令行参数,效果如下:
我们可以根据main()函数参数的形式和意义设计自己可以接受的有效参数,来实现特殊的功能