机电C第6篇函数.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 函 数 概 述 考核内容 一般格式 函数间的数据传递方式有三种: 1. 参数传递(值传递和地址传递) 利用实参和形参实现(实参?形参) 2. 函数返回值 利用return语句实现(形参?实参) 3. 全局变量 1. 形参与实参 形式参数:定义函数时函数名后面括号中的变量名。 形参出现在被调函数定义中。 实际参数:调用函数时函数名后面括号中的表达式。 实参出现在主调函数调用被调函数的语句中。 ?注意: 函数参数小结: 函数参数小结: 返回语句: 形式: return(表达式)。 功能:使程序控制从被调函数返回到主调函数中, 同时把被调函数的返回值带给主调函数。 ?说明: 1. return 语句将被调用函数中的一个确定值带回 主调函数中去,且一个return 语句只能带回一个返回值。 2.一个函数体内可以有多个返回语句, 不论执行 到哪一个,函数都结束,回到主调函数。 ?说明: 1.如果函数类型和return语句中表达式值的 类型不一致,则以函数类型为准,自动进行类型转换。 2.不带返回值的函数,可以明确定义为“空 类型”,类型说明符为“void” 6.4.1 函数调用的一般形式 函数表达式: 例 c=max(a,b); 函数语句: 例 fun1(); 函数参数: 例 printf(“%d”,max(a,b)); 1.对被调用函数要求 必须是已存在的函数。 库函数: stdio.h string.h math.h 。 用户自定义函数: 在主调函数中对被调函数作声明。 ?注意: 1.函数定义与函数声明不同 函数声明位置:主调函数的数据说明部分 2.下列情况下,可不作函数说明 (1)若函数返值是char或int型,系统自动按 int型处理。 (2)被调用函数定义出现在主调函数之前。 (3)如果在所有函数定义之前,在函数外预先 说明了各个函数的类型,则在以后的各主调函数 中,可不再对被调函数作声明。 对先引用后定义(位于主调函教之后)的函数在引用前应先声明。 ?注意: 3.下列情况下,可不作函数说明 对库函数的调用不需要再作声明,但必须把包 含该函数的头文件用 include命令包含在源文件 前部。 嵌套调用 C规定:函数定义不可嵌套,但函数可以嵌套调用 数组作为函数参数有两种形式 数组元素作函数实参 ,用变量作形参 ——数据复制传递方式。 数组名作实参和形参——地址复制传递方式。 局部变量---内部变量 定义:在一个函数或复合语句内定义的变量,称为局部变量。局部变量仅在定义它的函数或复合语句内有效。 全局变量---外部变量 定义:如果变量是在所有函数之外定义的,就称 为全局变量,其作用范围为从定义处开始,到源文 件结束。 全局变量和局部变量小结: 1.不同函数内的局部变量可以同名,互不影响。 2.全局变量与局部变量可以同名,在局部变量 起作用的范围内,全局变量不起作用。 3.全局变量的初始化只能有一次,而且是在对 全局变量定义的时候。 变量存储类型小结 本章小结 1. 函数的定义(内部函数与外部函数)。 2. 函数的调用(嵌套与递归)。 3. 函数间数据传递问题: 主调函数?被调函数(利用实参?形参) 被调函数?主调函数 (利用return语句) 4. 数组作为函数参数: 数组元素作实参(值传递) 数组名作实参和形参(地址传递) 5. 变量的存储类别。 例6-22 分析程序的运行结果。 int vs(int l,int w) {extern int h; int v; v=l*w*h; return v; } main() {extern int w,h; int l=5; printf(v=%d,vs(l,w)); } int l=3,w=4,h=5; 运行结果: v=100 h为全局变量的值5 l为 局部变量的值5, w为全局变量的值4 例6-23 不同源文件中外部变量的定义与声明。 /*file1.c*/ int x =10; /* 定义外部变量x */ int y =10; /* 定义外部变量y */ void add ( void ) {y=10+x; x*=2; } main ( ) {extern void sub(); x += 5; add( ); sub( ); printf (x=%d; y=%d\n, x, y); } /*file2.c*/ void sub (void) {extern int x; x -= 5; } 程

您可能关注的文档

文档评论(0)

xiaofei2001128 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档