C语言程序设计 教学课件 作者 崔永君 彭静 全书第7章.ppt

C语言程序设计 教学课件 作者 崔永君 彭静 全书第7章.ppt

ID:50083501

大小:1.40 MB

页数:124页

时间:2020-03-08

C语言程序设计 教学课件 作者 崔永君 彭静 全书第7章.ppt_第1页
C语言程序设计 教学课件 作者 崔永君 彭静 全书第7章.ppt_第2页
C语言程序设计 教学课件 作者 崔永君 彭静 全书第7章.ppt_第3页
C语言程序设计 教学课件 作者 崔永君 彭静 全书第7章.ppt_第4页
C语言程序设计 教学课件 作者 崔永君 彭静 全书第7章.ppt_第5页
资源描述:

《C语言程序设计 教学课件 作者 崔永君 彭静 全书第7章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第7章 函数7.1函数的定义7.2函数的返回值与函数类型说明7.3函数的调用7.4函数的嵌套调用与递归调用7.5变量的存储属性7.6多文件中函数和变量的处理7.1函 数 的 定 义函数定义的格式:<返回值类型><函数名>(<参数列表>){声明部分   语句部分}(1)函数名是任何合法的标识符,最好能直观地反映出该函数所完成的任务,以增强程序的可读性。(2)返回值类型定义了函数中return语句返回值的类型,是返回给调用者结果的数据类型。该返回值可以是任何有效类型。如果不指定返回值类型,则编译器总假定返回的是int类型,即便如此,也应明确地写出返回int类型。(3)参数列表

2、是用逗号分开的参数说明,参数说明的形 式是:<参数类型><参数名>参数列表是一个用逗号分隔的变量表,当函数被调用时,这些变量接收调用参数的值。一个函数可以没有参数,这时函数表是空的。但即使没有参数,括号仍然是必须有的。参数说明段定义了其中参数的类型。(4)函数体由大括号({})括起来,一般由两部分组成:声明部分和语句部分。声明部分用于声明函数内部的临时变量。也可以没有声明部分,只有语句部分。【例7.1】定义求两个浮点数之和的函数。   源程序如下:floatsum(floatx,floaty){returnx+y;}7.2函数的返回值与函数类型说明7.2.1函数的返回值函

3、数的值(或称函数返回值)是指函数被调用之后,执行函数体中的程序段所取得并返回给主调函数的值。如调用正弦函数则取得正弦值。函数的返回值是用return语句实现的。return语句有两种形式:return;或者:return(表达式);   例如:return;return(-1);return(x+y);   都是正确的return语句。return语句用于结束函数执行,返回主调函数。当return语句后面带有表达式时,该语句的功能是计算表达式的值,转换为函数类型说明所指定的类型,并返回给主调函数。   如果return语句后没有表达式,则只作返回主调函数操作。如果一个不带

4、表达式的return语句写在最后,则也可以省略,函数值执行完后会自动返回主调函数。函数中允许有多个return语句,但每次调用只能有一个return语句被执行,因此只能返回一个函数值。如例7.2所示,函数在s1、s2相等时返回1,不相等时返回-1。【例7.2】函数返回值应用示例1。   源程序如下:find_char(s1,s2)chars1,s2;{if(s1==s2)return1;elsereturn-1;}下面的表达式都是合法的C语言表达式:x=power(y);if(max(x,y)>100)printf("greater;");for(ch=getchar()

5、;isdigit(ch);)...;可是,函数不能作为赋值对象。例如:swap(x,y)=100;C编译程序将认为这个语句是错误的,而且对含有这种错误语句的程序不予编译。我们编写的程序中大部分函数属于三种类型。   第一种类型是简单计算型——函数设计成对变量进行运算,并且返回计算值。计算型函数实际上是一个“纯”函数,例如sqr()和sin()。第二类函数处理信息并且返回一个值,仅以此表示处理的成功或失败。例如write( ),用于向磁盘文件写信息。如果写操作成功,则write()返回写入的字节数;当函数返回-1时,标志写操作失败。   第三种类型的函数没有明确的返回值。实

6、际上这类函数是严格的过程型函数,不产生值。如果读者用的是符合ANSIC建议标准的C编译程序,那么所有这一类函数应当被说明为空值类型。需要说明的是,虽然除了空值函数以外的所有函数都返回一个值,但是我们并不是必须把它赋给某个变量。如果没有用它赋值,那它就被丢弃。如例7.3程序,它使用了mul()函数,mul()函数定义为intmul(intx,inty){...}【例7.3】函数返回值应用示例2。   源程序如下:1main()2{3intx,y,z;4x=10;y=20;5z=mul(x,y);/*1*/6printf("%d",mul(x,y));/*2*/7mul(x,

7、y);/*3*/8}在第5行,mul( )的返回值被赋予z;在第5行中,返回值实际上没有赋给任何变量,但被printf()函数所使用;在第6行,返回值被丢弃不用,因为既没有把它赋给第一个变量,也没有把它用作表达式中的一部分。一旦函数被定义为空类型,就不能在主调函数中使用被调函数的函数值了。例如,定义mul()为空类型后,在主函数中写下下述语句:z=mul(x,y);printf("%d",mul(x,y));   就是错误的。7.2.2函数类型说明只有这样,C编译程序才能为返回非整型值的函数生成正确代码。   函数类型说明语句

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。