上讲内容回顾函间的参数传递函数的嵌套调用和递归调用.pptVIP

上讲内容回顾函间的参数传递函数的嵌套调用和递归调用.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
上讲内容回顾函间的参数传递函数的嵌套调用和递归调用

变量的完整定义 C语言的内存空间 变量的存储类型 存储类型说明符有: auto(自动)型:属于临时性存储,其存储空间可以被若干变量多次覆盖使用 register(寄存器)型(一般情况下不这样指定) *存放在CPU的通用寄存器中,目的是提高执行速度 *long,double,float不能设为register型,因为超过寄存器长度 static(静态)型:存放在静态存储区域中,生命期长 extern(外部)型:用于定义或说明变量是外部的。 局部变量的存储类型:auto static register 静态类变量 全局变量的存储类型 extern(外部)和static(静态) 使用全局变量传递数据 *在所有函数之外说明的变量是全局变量,它在所有函数中都是可见的。 *利用全局变量这个特性,可以在函数间传递多个数据 内部函数和外部函数 内部函数:也称为静态函数,只能在定义它的程序文件中被调用,而不能被其它文件中的函数所调用。 *定义形式为: static 类型标识符 函数名(形参表) 外部函数:除了内部函数,其余的函数都可以为其它文件调用 *定义形式: extern 类型标识符 函数名(形参表) *extern缺省时隐含为外部函数,调用文件中也要用extern说明 应用举例 编译预处理 编译预处理——文件包含 C语言编译系统中以“.h”为扩展名的文件称为头文件,在使用C语言编译系统提供的库函数进行程序设计时,经常需要在源程序中包含相应的“头文件”,如“stdio.h”、“string.h”等。 用C语言设计程序时,通常将全局变量的定义、符号常量的定义、结构类型的定义以及函数类型说明等语句放在头文件中。这样,对于需要该文件的源程序来讲,都可以通过#include语句将其包含到程序中。正确使用#include语句,将会减少不必要的重复工作,提高编程效率。 编译预处理——宏定义 *宏定义可分为两种形式: 1.不带参的宏定义,形式为: #define 标识符(或符号常量名) 字符串 作用:是用一个指定的标识符来代替一个字符串。 例如:#defime N 10 /*用标识符N来代替字符串10*/ 在编译预处理时,预处理程序会把程序中该语句以后的所有 N 都用字符串“10”来替换。 2.带参的宏定义,形式为: #define 宏名(参数表) 字符串 注意:字符串中应包含参数表中指定参数。 编译预处理——宏定义 带参数的宏定义的展开替换过程为:程序中如果有带实参的宏名,则按#define语句中指定的字符串从左到右进行替换;如果串中包含宏中的形参,则用程序语句中相应的实参代替形参;如果宏定义中的字符串中的字符不是参数字符,则原样保留。 宏定义应用举例 作业 复习教材 第六章的第4、5、6、7节 第七章 预习教材 第八章的第三1、2、3、4节 自学第七单元的第四部分 * 研究式学习—C程序设计(第五章) * 研究式学习—C程序设计(第二章) 上讲内容回顾 函数间的参数传递 函数的嵌套调用和递归调用 第五章3 第五章3 本讲内容 变量的作用域 变量的存储类型 编译预处理 变量的作用域 main() {float r,area; printf(“r=?”); scanf(“%f”,r); area=carea(r); printf(“r=%5.2f,carae=%5.2f,cl=%5.2f\n”,r,area,cl); } 程序运行结果: r=?3 r= 3.00,carae=28.26,c1=18.84 问题:写一个函数,送入圆 的半径后,得到圆的面积 及周长。 return语句只能返回一 个值,要返回多个值,要用 全局变量。 float cl;/*定义全局变量c1*/ float carea(float r) {float ar; ar=3.14*r*r; cl=2*3.14*r; return ar; } float f1(int a) /*定义f1函数 */ {int b,c; …} char f2(int x) /*定义f2函数 */ {int b,j; …} main()/*主函数 */ {int m,n; …} p,q作用域 c1,c2作用域 局部变量(函数体内定义)作用域仅仅局限 于定义它的函数,在不同的函数内可以 定义同名的局部变量(f1、f2函数都有变量b) 全局变量(函数体外定义) :作用域从它定 义的位置开始到本源文件结束,变量名不能重。

文档评论(0)

wyw118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档