首页 理论教育C语言程序设计第2版:带参数的主函数解析

C语言程序设计第2版:带参数的主函数解析

【摘要】:C语言规定,主函数也可以带参数。若主函数带参数,则执行目标程序时,应按下列格式给出相应的实际参数:程序名实际参数1实际参数2…实际参数n此时,系统会自动在内存中开辟区域依次存放程序名和所有的实际参数,同时给主函数的形式参数赋值,结果如下:形参argc赋值为n+1,表示连同程序名在内共有n+1个参数。例7.22编写一个带参数的主函数。注意:程序运行时,在程序名后带有2个整数,程序的功能是输出这2个整数的和。

C语言规定,主函数也可以带参数。就像编写普通的用户函数一样,主函数可以带参数,也可以不带参数。

主函数的形式参数只有两个:一个形式参数是记录了参数的个数,这是一个整型的形式参数,其名称规定为“argc”;第二个形式参数依次记录了在调用该主函数(即执行程序)时给出的实际参数内容(字符串),这个形式参数是一个字符指针数组,每个元素指向一个实际参数对应的字符串,第二个形式参数名称规定为“argv[]”。

带参数的主函数在定义时,其函数头的定义规定如下:

main(argc,argv)

int argc; /*第1个形式参数:整型*/

char*argv[];/*第2个形式参数:字符指针型数组*/

如果主函数不带参数,执行目标程序时只要按下列格式输入程序名然后回车就可以了:

程序名

通常把在操作系统下按上述格式执行目标程序时输入的一行称为“命令行”。

若主函数带参数,则执行目标程序时,应按下列格式给出相应的实际参数:

程序名 实际参数1实际参数2…实际参数n

此时,系统会自动在内存中开辟区域依次存放程序名和所有的实际参数,同时给主函数的形式参数赋值,结果如下:

形参argc赋值为n+1,表示连同程序名在内共有n+1个参数。

形参argv[0]赋值为存放“程序名”字符串的首地址;(www.chuimin.cn)

argv[1]赋值为存放“实际参数1”字符串的首地址;

……

argv[n]赋值为存放“实际参数n”字符串的首地址。

例如,有一个名为“my_copy.c”的程序,其主函数带有参数。如果在执行时,输入的命令行如下:my_copy c:\ccw1.txt d:\ccw2.txt

则形式参数的值如下:

argc=3;

argv[0]指向字符串“my_copy”;

argv[1]指向字符串“a:\ccw1.txt”;

argv[2]指向字符串“a:\ccw2.txt”。

在程序中,可以通过形式参数获得相应的实际参数,参与程序的运算和加工。

例7.22 编写一个带参数的主函数。

注意:程序运行时,在程序名后带有2个整数,程序的功能是输出这2个整数的和。如该源程序名为test.c,则运行时输入:test 5 10,输出结果为

5+10=15。