中南大学c语言(陈老师)第7章用函数实现模块化程序设计详解.ppt

中南大学c语言(陈老师)第7章用函数实现模块化程序设计详解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
函数的定义格式: [函数返回值类型] 函数名([数据类型 形式参数1, 数据类型 形式参数2,…,数据类型 形式参数n]) { [说明部分;] /*函数体*/ [语句部分;] } 其中:函数类型是该函数返回值的数据类型,可以是整型、浮点型、字符型以及无值型(表示函数没有返回值)、指针型等。 例: int sql1(int m,int n,char c) /*说明一个整型函数*/ float sum() /*说明一个浮点型函数*/ void stu(int n) /*说明一个无返回值的函数*/ 关于函数的说明: 函数名称和形式参数可以是C语言中任何合法的标识符。函数名称后面一定要有一对圆括号(如果有参数,则它们放在圆括号之内),由它表示该标识符是函数名。 在一个程序中,函数的名称应是唯一的。 形式参数只要在同一函数中唯一即可,可与其他函数中的变量同名。 不能在一个函数内部再定义函数。 从语法规则上讲,函数类型可以是除函数和数组以外的任何类型。但对一个具体函数的定义来说,它的类型是惟一的,并且通常与其返回值的类型一致。如果不一致,系统自动转换。注意,缺省的函数类型是int型。 如果有参数,则应对它们的类型一一作出说明。 例: max(float x, float y) { float z; z=xy?x:y; return z; } main() { float a=1.5,b=0.5; float c; c=max(a,b); printf(“max os %f\n”,c); } 7.2.2 定义函数的方法 函数的返回值 函数的返回值是由return语句完成,格式为: return(表达式); return 表达式; return; 说明: 若不用return,C语言规定,当被调用函数执行到最后一个右花括号时也能将控制权交给调用函数。 若调用函数未利用被调函数返回值,该返回值舍弃。 一个函数可以有多个return语句,但函数在执行过程中遇到的第一个return即返回主调函数。 int sum100( ) { int i,t=0; for (i=1; i=100; i++) t+=i; return (t);} main( ) { int s; s=sum100( ); printf(%d\n, s); } 2.形参和实参的特点 (1)实参可以是常量、变量、表达式、函数等。无论定义的实参是何种类型,在进行函数调用时,它们都必须具有确定的值,以便程序在运行时把这些值传送给形参。 (2)形参变量只有在被调用时系统才为其分配内存单元,在调用结束后,随即释放所分配的内存单元。 (3)函数调用中发生的数据传送是单向的,即只能把实参的值传送给形参。 (4)实参和形参在数量上、类型上、顺序上应严格一致。 7.4对被调用函数的声明和函数原型 函数声明是函数调用前的准备,函数声明的形式采用函数原型的形式 [函数返回值类型] 函数名([数据类型 形式参数1, 数据类型 形式参数2,…,数据类型 形式参数n]); 例:float max(float x, float y); 说明: 函数声明可以是一个独立语句,或与普通变量一起出现在一个说明语句中。 例: float x,max(float, float); 2. 函数声明不是函数定义! 3. 函数名前无函数类型,则缺省为int型 7.4对被调用函数的声明和函数原型 函数说明的位置(重要!) 被调用函数的说明位置在该函数被调用前且是在所有函数的外部时,后面所有位置可以调用该函数; 函数声明放在调用函数内部说明部分时,作用范围只在调用函数内部。 7.9.2 局部变量的存储类别 7.9.2 局部变量的存储类别 自动变量的特点: ⑴ 内存分配 调用函数或执行分程序时在动态存储区为其分配存储单元,函数或分程序执行结束,所占内存空间即刻释放。 ⑵ 变量的初值 定义变量时若没赋初值,变量的初值不确定;如果赋初值则每次函数被调用时执行一次赋值操作。 ⑶ 生存期 在函数或分程序执行期间。 ⑷ 作用域 自动变量所在的函数内或分程序内。 全局变量(外部变量):在函数外部定义的变量。 作用域:从定义变量的位置开始到本源文件结束。如在其作用域内的函数或分程序中定义了同名局部变量,则在局部变量的作用域内,同名全局变量暂时不起作用。 全局变量 int a = 5; void f(int x, int y) { int b,c; b=a+x; c=a-y; printf(%d

文档评论(0)

三四五 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档