《第十一章对函数的进一步讨论教案资料》由会员分享,可在线阅读,更多相关《第十一章对函数的进一步讨论教案资料(10页珍藏版)》请在金锄头文库上搜索。
1、第十一章 对函数的进一步讨论,11.1 传给main函数的参数,在前面程序中,主函数main( )是不带参数的。实际上,在C语言中,允许main( )带有两个参数: main(int argc, char *argv ) 即一个整型参数(指明参数个数),另一个字符型指针数组(依次存放每个参数对应的字符串)。 注. 主函数形参名习惯上使用argc和argv. 例11.1,函数指针作参数,使用指向函数的指针变量可以实现用函数指针作参数,使得函数名可以在其他函数间传递。 1.函数的指针和指向函数的指针变量 函数名是内存中连续存放指令代码的首地址,也就是该函数的入口地址。因此,函数名就是函数的指针。以
2、函数名为其值的指针变量就是指向函数的指针变量。,11.2 传递函数名或指向函数的指针变量,2.函数指针作参数 函数指针可以作参数,形参说明的形式为 类型 (*变量名) ( 参数类形表) 例11.2 double tran(double (*f1)(double), double (*f2)(duble), double x) return (*f1)(x)/(*f2)(x); /或写作return f1(x)/f2(x); main() y=tran(sin, cos, x); ,递归调用就是直接或间接调用自己,用递归算法。 例如:n!可以写作 n*(n-1)! ,而(n-1)!还是求阶乘。
3、递归三个条件: 1、终止递归调用的测试 2、递归调用语句 3、先测试,后递归 例11.3,11.3 函数的递归调用,考点归纳 11.1 传给main函数的参数 在此之前,我们在编写main函数时,其后一对圆括号是空的,没有参数。其实,在支持C的环境中,可以在运行C程序时,通过运行C程序的命令行,把参数传送给C程序。 11.2 通过实参向函数传递函数名或指向函数的指针变量 1.指向函数的指针变量的定义 在C语言中函数名代表该函数的入口地址,因此可以定义一种指向函数地址的指针变量。 2.函数名或指向函数的指针变量作为参考 函数名或指向函数的指针变量可以作为实参传送给函数。这时,对应的形参是类型相同的指针变量。 11.3 函数的递归调用 C语言中的函数可以递归调用,即:可以直接或间接地自己调用自己。前者称简单递归,后者称间接递归。,