- 1、本文档共79页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章的 函数
6.1 函数定义与声明 用函数来划分程序中的各个功能模块可以简化程序,增加程序的可读性。 函数的定义: 函数类型 函数名(形式参数表) { 函数体 } 定义中函数类型实际上就是函数返回值的类型。若函数定义中给出了其返回值类型,则在退出函数体返回到调用点之前必须使用return语句,return语句将函数计算结果返回给调用语句。 例1: int Max(int a,int b) /*函数Max用来求形参 a,b的最大值*/ {int t; /*定义函数中要用到的变量t*/ t= ab?a:b; return t; /*函数返回整型类型数据t*/ } 例2: void Print(int i) /*函数Print用来连续输出i个 ‘*‘号,该函数无返回值*/ {int j; /*定义函数中要用到的变量j*/ for(j=0;ji;j++) printf(‘*’); return ; /*返回空语句,该语句可以不写*/ } 定义函数的目的就是在适当的时候要调用函数。函数定义好后,在其后的其他函数代码中即可以调用它了。函数调用格式: 函数名(实际参数表); 函数声明的格式: 函数类型 函数名(形参表) 可以看出,函数声明只要给出函数定义部分的函数首部。函数声明语句说明了函数的原型,有时也把函数声明叫做函数原型说明。 6.2 变量及参数传递 6.2.1局部变量与全局变量 变量有效性的范围称变量的作用域。不仅对于形参变量,C语言中所有的变量都有自己的作用域。变量说明的方式不同,其作用域也不同。C语言中的变量,按作用域范围可分为两种,即局部变量和全局变量。 局部变量也称为内部变量,在函数体或参数表中定义说明。其作用域仅限于函数体内, 离开该函数体后再使用这种变量是非法的。 例如: (1) int f1(int a) /*函数f1*/ { int b,c; …… } /*局部变量a、b、c作用域为函数f1*/ (2) int f2(int x) /*函数f2*/ { int y,z; } /*局部变量x、y、z的作用域为函数f2*/ (3) main() { int m,n; } /*局部变量m、n的作用域为函数main*/ 关于局部变量的作用域要注意以下几点: 1. 主函数中定义的变量也只能在主函数中使用,不能在其它函数中使用。同时,主函数中也不能使用其它函数中定义的变量。因为主函数也是一个函数,它与其它函数是平行关系。这一点是与其它语言不同的,应予以注意。 2. 形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。 3. 允许在不同的函数中使用相同的变量名,它们代表不同的对象,分配不同的单元,互不干扰,也不会发生混淆。 4. 在复合语句中也可定义变量,其作用域只在复合语句范围内。 例如: void main() { int s,a; …… { int b; s=a+b; } /*b作用域为前面的‘{‘、‘}’所括范围*/ } /*s、a的作用域为main函数体*/ 全局变量也称为外部变量,它是在函数外部定义的变量。 它不属于哪一个函数,它属于一个源程序文件,其作用域是整个源程序。在函数中使用全局变量,一般应作全局变量说明,只有在函数内经过说明的全局变量才能使用。全局变量的说明符为extern,但在一个函数之前定义的全局变量,在该函数内使用可不再加以说明。 例如: (1) int a,b; /*全局变量a、b作用域开始*/ void f1() /*函数f1*/ {……} (2) float x,y; /*全局变量x,y作用域开始*/ int fz() /*函数fz*/ {……} (3) void main() /*主函数*/ {…… } /*文件结束意味着全局变量a、b、x、y作用域的结束*/ 对于全局变量的使用,还有注意以下几点: 1. 对于局部变量的定义和说明,可以不加区分。外部变量则不然,外部变量的定义和外部变量的说明并不是一回事。外部变量定义必须在函数之外,且只能定义一次。一般形式为: [extern] 类型说明符 变量名,变量名
文档评论(0)