c语言的递归定义有两个要素,C语言-chap8function.ppt

C语言-chap8function

第8章 “函数”的主要知识点 函数的定义 函数的参数 函数的返回值 函数的调用 变量的作用域与存储方式 一、 函数的递归调用 一、函数的递归调用 分析:用辗转相除法求最大公约数 if (m % n) = = 0 n 是公约数; else 求 n 和 m % n 的公约数; 求最大公约数的递归算法如下: int gcd(int m, int n) { if (m % n) == 0return n ; else return gcd(n, m % n); } 汉诺塔 问题可分为三个步骤 二、数组作为函数的参数 数组作为函数参数主要有两种情况: 数组元素作为函数的实参:这种情况与普通变量作实参一样,是将数组元素的值传给形参。形参的变化不会影响实参数组元素,我们称这种参数传递方式为“值传递”。 数组名作实参:要求函数形参是相同类型的数组或指针,这种方式是把实参数组的起始地址传给形参数组,形参数组的改变也是对实参数组的改变,称这种参数传递方式为“地址传递”。 三、变量作用域与存储方式 先看一个例子,错在那里?: void f1( ) { int t=2; a *= t; b /= t; } main() { int a, b; printf(“ Enter a,b:”); scanf(“%d,%d”, &a, &b); f1( ); /* 调用函数f1( ) */ printf (“a=%d,b=%d”, a, b); } (一)变量的作用域(变量的有效范围) 1.变量按作用域分为全局变量和局部变量 int x=1,y=2; sub(int y) { x++; y++; } void main( ) { int x=3; sub (x); printf(“x+y=%d”,x+y); } 什么是预处理命令? 请预习P204-P217页! 第9章 预处理命令 (一)变量的作用域(变量的有效范围) 3、局部变量 内部变量:在一个函数内部定义的变量称内部变量。它只在本函数范围内有效,即:只有在本函数内才能使用这些变量,故也称为“局部变量” 。 例如: float f1( int a) /*函数f1 */ {int b,c; … /* a、b、c有效*/ } char f2(int x,int y) /*函数f2 */ {int i,j; /* x、y、i、j有效*/ } void main( ) /*主函数*/ {int m,n; … /* m、n有效*/ }    主函数中定义的变量只在主函数中有效,而不因为在主函数中定义而在整个文件或程序中有效。主函数也不能使用其他函数中定义的变量。 (2)不同函数中可以使用相同名字的变量,它们代表不同的对象,互不干扰。 (3) 形式参数也是局部变量。 (4) 在一个函数内部,可以在复合语句中定义变量,这些变量只在本复合语句中有效,这种复合语句也称为“分程序”或“程序块”。 3、局部变量 说明: void main ( ) {int a,b; … {int c; c=a+b; c只在此范围内有效 a,b在此范围内有效 … } … }   3、局部变量 4、 全局变量 外部变量:函数之外定义的变量称为外部变量。外部变量可以为本文件中其他函数所共用。它的有效范围为从定义变量的位置开始到本源文件结束。所以也称全局变量(全程变量)。 int p=1,q=5; /* 外部变量 */ float f1(int a) /* 定义函数f1 */ {int b,c; … } char c1,c2; /* 外部变量*/ char f2 (int x, int y) /*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值