《函数和程序结构.ppt》由会员分享,可在线阅读,更多相关《函数和程序结构.ppt(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章 函数和程序结构C语言函数的概念多文件组成C程序的方法变量生存期作用域 C语言的数学函数问题:(1)程序越来越长。难于理解且可读性下降。(2)重复代码增多,某段程序可能被执行多次。(3)某一问题中的代码,无法在其它同类问题中再用,必须重复原来的设计编码过程。函数是一种机制,能够有效地分解复杂的描述,控制程序规模和复杂性。需要抽象成函数的程序段:(1)功能独立、具有独立逻辑意义的程序段 (2)重复出现的代码段 函数机制提供的好处:(1)函数可以被多次调用,减少程序长度,保持函数意义的一致性。(2)增加程序可读性。(3)模块化、结构化更强。6.1概述概述 C 程序中调用库函数需要两步:1使用
2、include命令指出关于库函数的相关定义和说明。include命令必须以“#”开头,系统提供的头文件以.h作为文件后缀,文件名用一队尖括号或一对双撇号”括起来。#include开头的程序行不是C语句,末尾不加“;”号。2调用标准库函数 调用库函数的形式为:函数名(参数表)(1)表达式中调用:函数是表达式的一个运算对象。如 y=z*sin(x)+0.5;(2)作为独立语句:可看作表达式语句 如 printf(“%dn”,a);6.2 库函数库函数 C语言中定义函数的一般形式为:函数返回值类型名 函数名(类型名 形参1,类型名 形参2)/*头部*/说明部分 /*函数体*/语句部分 return语
3、句的形式如下:return 表达式;或 return(表达式);或 return;return的作用:退出函数,并带回函数值。6.3 函数定义函数定义 6.4.1 函数的调用 函数调用的形式为:函数名函数名(实际参数列表实际参数列表)调用函数时要注意以下几点:(1)调用名字必须与定义名字完全一致。(2)实参个数与形参个数一致,类型一致,如不匹配,进行自动转换,不兼容的赋值转换(某些类型之间不能进行赋值,如指针和浮点类型之间)并不给出错信息,程序继续运行,但结果不正确。(3)可以嵌套调用。如a函数调用b函数,b函数中又调用c函数。C语言规定所有的函数都是互相平行、独立的。不容许嵌套定义(在一个函
4、数的定义中,包含另一个函数的完整定义),但可以嵌套调用。6.4 函数的调用和说明函数的调用和说明 6.4.2 函数说明 在调用之前对函数进行说明,称为函数的原型说明。形式如下:类型名 函数名(参数类型列表或参数列表);形式上可理解为函数定义的首部加分号“;”,它的作用是检查调用时参数的个数和类型正确与否。因此参数列表中,只需类型名即可,如有形参名,可以是任意的用户标识符,不一定要和函数定义的形参相同。6.4 函数的调用和说明函数的调用和说明 C语言中,调用函数和被调函数之间的数据传递有三种方式:(1)实参和形参之间数据传递 (2)return 语句把函数值返回调用函数。(3)通过全局变量。(全
5、局变量在本章稍后讨论)C语言中实参和形参之间数据传递的方式叫“值传递”,数据只能从实参单向传递给形参。函数调用时,首先计算实参表达式的值,求出的值分别赋给对应的形参,进入函数体执行,形参本身就是局部于函数的变量,调用时接收实参的值。函数内部对形参的赋值与实参变量毫无关系。实参变量的值不会被改变。实参与形参传递值时,隐含着可能的转换。如转换不能进行,编译时产生类型错误。C的函数调用机制很简单,值传递是C语言实参形参结合的唯一方法,续章节中,我们会看到数组名和指针做函数参数的情形,它们进行实参形参结合的方式离不开值传递这个本质。6.5 调用函数和被调函数的数据传递调用函数和被调函数的数据传递 本章小结本章主要知识点:C语言关于函数的规定。定义方法、说明规定、返回值、函数返回和函数调用。函数之间参数传递的规定。形参与实参的对应关系,参数传递方式,void型函数。变量的存储类型。变量存在期与作用域的概念,4种存储变量类型的说明方式、特点和使用范围,不同存储类型变量在使用时的区别,变量的初始化方法,在函数间使用外部变量传递数据的规定。多文件程序的组织和实现方法 常见库函数的使用方法。掌握本章内容的关键是理理解解函函数数的的参参数数传传递递机机制制及及变变量量作作用用域域和和存在期的概念存在期的概念。
限制150内