最近学习到Linux文件I/O,意外看到了带有形参的main函数,虽然以前知道main函数可以带有形参,但一直也没有用过。
形式如下:
int main(int argc,char* argv[]){}
由于main函数不能被其他函数调用,因此不能在程序内部取得实际值,那么该如何获得参数的值呢?
实际上,main函数的参数值是从操作系统命令行上获得的!
其中,argv[0]存储的是该程序的当前路径,其余存储的是从命令行获取的参数,argc表示argv[]中参数的个数。
下面在Ubuntu中进行实验,代码如下:
vim testmain.c
#include<stdio.h>
int main(int argc,char* argv[])
{
int i;
for(i=0;i<argc;i++)
{
printf("i = %d | argc = %d | argv[%d] %s\n",i,argc,i,argv[i]);
}
return 0;
}
用gcc进行编译后形成可执行文件testmain.out
gcc testmain.c -o testmain.out
运行可执行文件testmain.out,结果如下图: