图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
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。
有关C语言程序设计 第2版的文章
图5.7两层函数嵌套调用示意图函数的嵌套调用即一个函数在被调用的过程中又调用了另外的一个函数。函数fac和powers的返回值类型均被设计为double型,其主要目的是为了避免n!x:0.5//0.5从键盘输入的数据0.50 powers of e=1.648721//程序执行结果......
2023-11-20
而当用数组名作函数参数时,情况则不同。由于实际上形参和实参为同一数组,因此当形参数组发生变化时,实参数组也随之变化。本程序与例5.5程序相比,aver()函数的形参数组长度改为8,而在函数体中,for语句的循环条件也改为i<8。因此,形参数组a和实参数组sco的长度不一致。例5.7把例5.5程序中的函数的形参数组不指定长度,并改写程序。......
2023-11-18
表1.4scanf()附加说明字符注意:“*”符:用以表示该输入项读入后不赋予相应的变量,即跳过该输入值。例1.4输入输出数据类型控制。现将改动程序如下:则运行结果为:input a long integer12345678901234567890当输入数据改为长整型后,输入输出数据相同。......
2023-11-18
一个函数直接或间接地调用自己,称为函数的递归调用。所以函数递归调用的实现必须依靠系统提供一个特殊部件(堆栈)存放未完成的操作,以保证当递归调用结束回溯时不会丢失任何应该执行而没有执行的操作。为了理解函数递归调用的特性,参照例5.9的程序讨论函数递归调用的执行过程,为了讨论方便为程序加上行号。函数递归调用示例。......
2023-11-20
C语言中所有函数的定义都是平行的,也就是说,不能在函数定义中再定义其他函数。但是C语言允许在函数定义中再调用其他函数,这就是函数的嵌套调用。本例可编写两个函数,一个是用来计算平方值的函数f1(),另一个是用来计算阶乘值的函数f2()。图5.4函数的嵌套调用函数的嵌套调用使程序形成了一种自顶向下树型结构,如图5.5所示。一个C语言程序通常不是由少数几个大函数组成,而是由许许多多小函数组成。......
2023-11-18
图5.3程序运行结果说明:定义函数时指定的形参变量在未出现函数调用时,并不占用内存的存储单元。图5.4程序运行结果说明:程序中实参与形参同名,但两者的作用范围不同,程序开始执行时,为主函数中的变量n分配存储空间,实参n 在主函数main()中有效;主函数调用函数s(),有效的是形参n。程序的运行结果表明,当函数调用时,实参的值传送给形参,在被调函数内部,形参的变化不会影响实参的值。......
2023-10-21
首先数组元素可以作为实参,其用法与变量完全相同。图5.5程序运行结果说明:用数组名作函数参数,应该在主调函数和被调用函数分别定义数组,例中array 是形参数组名,score 是实参数组名,分别在其所在函数中定义,不能只在一方定义。图5.8程序运行结果用数组名作为函数参数时应注意以下几点:形参数组和实参数组的类型必须一致。......
2023-10-21
在C语言中,以函数首部声明函数的形式称为函数原型。使用函数原型是C语言的一个重要特征,主要作用是利用它在程序的编译阶段对调用函数的合法性进行全面检查。......
2023-11-18
相关推荐