通常C/C++的入口函数都是main函数,平常一般使用的原型都是
int main() { //something; return 0; }
但是 main函数也可以是有参数的
int main(int argc,char *argv[]) { //something; return 0; }
参数1:argc就是命令行的参数个数。比如用户输入: filename lynnbest zxw 这个命令行命令,从字符串个数角度来看,就是3个字符串。所以argc=3.
参数2:是一个字符指针数组(一个数组,每个数组中的元素为一个指针)。也就是给main函数传递参数的值。
比如前面提到的命令行命令 中,访问argv[0]就表示就是“filename ”字符串的首地址。那么打印出来就是filename了,明显argc有几个值,那么字符串就有几个。而我们关心的参数当然就是除去filename了其他的参数,因为第一个为可执行文件的名字。从第二个开始才是 要传入的参数。
命令行命令解释:
格式为:Exe文件名 参数1 参数2...参数n
Exe文件名是指的是要执行的.exe文件名,参数1,参数2是指给main函数进行传参数
下面是一个具体的使用
1.首先编辑源代码
/测试命令行下 如何调用main函数 #include <stdio.h> //功能就是从命令行中传递字符串,并且打印出来 int main(int argc,char *argv[]) { char **p=argv; while(argc>1) { puts(*(++p)); //打印 从命令行中 输入的字符串 argc--; } return 0; } //输入testc beijing shanghai //输出 beijing // shanghai然后,对该文件进行编译链接,得到.exe文件。本文中是c_cpp_vs08.exe
2.进入windows命令行环境下,将目录切换到 上述的.exe文件夹下。
比如我的c_cpp_vs08.exe 文件位于h:下的。
点击 运行-开始-cmd 进入到命令行状态下:
先进入h:盘存放文件的盘符
使用cd命令进入指定文件夹
然后就是输入命令 –回车-打印出了两个字符串
小结:通过在命令行下给main函数进行传递参数,可以看出main函数也是接受参数的。只是因为大部分我们都是直接通过OS来调用main函数。