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) /*

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

  1. c语言的递归定义有两个要素是,缠论的核心要素-递归函数、级别、结合律、区间套(二)...

    再论递归 递归函数的构建基本条件是对本身的引用,那么一个终止处理条件是函数运算的前提,否则可能无法运算或陷入死循环.具体到缠论上,就是第一单交易,这是个绝对的起始点. 那么,如何去选择初始分析级别(即 ...

  2. c语言如何宏定义枚举型结构体,C语言学习笔记--枚举结构体

    枚举 枚举是一种用户定义的数据类型,它用关键字enum以如下语法格式来声明: enum 枚举类型名字 {名字0,名字1,...,名字n}: 枚举类型名字通常并不真的使用,要用的是大括号里面的名字,因为 ...

  3. c语言定义保留两位小数,c语言中保留两位小数怎么表示

    在C语言中,表示方法为"%.2lf",语法格式为"printf("%.2lf,%.2lf\n",元素)"."%.2lf" ...

  4. 函数定义涉及的三要素C语言,(函数定义与三要素答案.doc

    (函数定义与三要素答案 函数定义及三要素 1.与函数y=10lg(2x-1)的图象相同的函数是( ) A.y= B.y=2x-1 C.y= D.y= [答案] B [解析] y=10lg(2x-1)= ...

  5. 函数定义涉及的三要素C语言,c语言函数的调用

    /* 1. 函数三要素 函数名 形参列表   函数体 2. 如何调用函数? 函数名(); 3.函数体内容书写一定要谨慎 bug  是编程常用  出现了问题 函数哪里需要哪里都可以调用 声明一个函数   ...

  6. c语言求解一元二次方程的两相等实根,c语言改错题 有关求一元二次方程ax2+bx+c=0的两个实根...

    c语言改错题 有关求一元二次方程ax2+bx+c=0的两个实根0 麻烦帮忙看看下面三个程序的区别~~谢谢啦 下列是用于求一元二次方程ax2+bx+c=0的两个实根的三个c程序,分别采用不同的方法或使用 ...

  7. 并行DA实验c语言程序,求助怎么把两个单片机c语言程序结合在一起?大一期末实验...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 /* DS18B20数字温度传感器 (温度控制) 实验连线 单片机的P3.3连接DS18B20单元的 DQ 单片机的P3.2连接继电器单元的 JIN 继电 ...

  8. C语言中字符串定义与文字常量区

    C语言中字符串定义与文字常量区 C语言的内存组织方式1>代码区,存放可执行代码2>全局存储区,存放所有全局变量和静态变量3>文字常量区,常量字符串4>堆区,malloc,new ...

  9. Java基础:01Java语言概述(常见的DOS命令,Java语言的特点、核心机制、环境搭建,HelloWorld,注释,Java API 文档)

    Java基础:01Java语言概述 一.常见的DOS命令 二.Java语言的特点 面向对象性 健壮性 跨平台型 三.Java两种核心机制 1. Java虚拟机 2. 垃圾回收 四.Java语言的环境搭 ...

最新文章

  1. 使用cv2.Sobel()、cv2.Scharr()、cv2.Laplacian()寻找图像的梯度、边缘
  2. R计算赤信息指标(Akaike information criterion,AIC)
  3. BZOJ 4174 tty的求助 莫比乌斯反演
  4. word count(小组)
  5. 使用tracert命令查看某一个网站的ip地址
  6. c语言使用函数累加由n个a构成的整数之和,c 语言使用函数累加由n个a构成的整数之和...
  7. 分布式锁用Redis坚决不用Zookeeper?
  8. IOException: Broken pipe
  9. 10分钟看明白大M法和两阶段法
  10. ds18b20负温度c语言,温度显示异常DS18B20
  11. VsCode设置一行代码固定长度
  12. Android 使用so库的遇到的坑
  13. 视线估计14个常见数据集下载
  14. keil中c语言bit怎么用,关于keil多c文件工程中bit变量的声明定义问题
  15. 两个小时教你明白C++中类型转换关系
  16. 【生活类】洗衣机不排水怎么解决?
  17. Comsys学生比赛管理系统
  18. java密码复杂度匹配规则
  19. 智慧农业解决方案-全套完整合集
  20. 天池比赛:o2o优惠券使用预测

热门文章

  1. 错误代码: 1066 Not unique table/alias: #39;c#39;
  2. Xshell中文乱码问题
  3. ubuntu12.04下安装NVIDIA驱动
  4. 高级Linux Kernel Inline Hook技术分析与实现
  5. left join on、where后面的条件的区别
  6. 综合应用WPF/WCF/WF/LINQ之二十七:代码生成器之DBMLToProcedure
  7. 在线图像识别相似图片_宋源:图像识别传感器在制桶设备上的应用(附视频)...
  8. python输出运行时间_分析python程序运行时间的几种方法
  9. 二本学医还是学计算机,二本医学院毕业的医学生,最后都去了哪里?看完莫名心酸!...
  10. centos使用python_Centos7使用Python3