请教c语言中main函数的参数

来源:百度知道 编辑:UC知道 时间:2024/05/25 17:55:03
经常看到C语言的main函数定义为:
int main(int argc, char *argv[]),但是在函数体中经常是根本不用main函数中的这两个参数,那么为什么要定义出来这两个参数???

这两个参数用于在运行程序时,从外部给程序传递参数,其中argc中保存了参数的个数,argv中分别保存了各个参数.

例如一个程序的main()函数头部形如int main(int argc, char *argv[]),编译链接后生成的可执行文件名为a.exe,那么请注意下面的调用:

a.exe abc def

在上面的命令行中,a.exe是要运行的程序名称,后面的abc和def就是传入程序的两个参数,这两个参数就通过argc和argv传入程序,注意这些参数都是字符串。

通过上面的调用,在这个程序中,argc=3,a.exe是第一个参数,这个字符串将保存在argv[0]中,abc和def分别是第二和第三个参数,它们分别被保存在argv[1]和argv[2]中

三种基本形式,无参,双参,三参,c中无参有一个变体void main();基本形式
int main(argc,char*argv[],char*env[]);三个参数argc,命令行参数的个数,argv,命令行参数字符串数组,env环境变量,就是系统设置里的path=之类的字符串,启动时加载,命令行是执行时的附如参数,程序根据命令行参数,执行不同动作

用于传递命令行位置参数到程序里.

例如:
输入长宽,计算矩型面积
void main(int argc,char *argv[]){
float area,w,h;

if (argc < 3) {
printf("\007Usage:%s width height\n",argv[0]);
printf("for example:%s 12.3 4.5\n",argv[0]);
exit(0);
}
// 参数0 是程序名,argc参数个数
sscanf(argv[1],"%f",&w); // 从参数1取得宽
sscanf(argv[2],"%f",&h); // 从参数2取得高