5C语言的函数.ppt
文本预览下载声明
5 函数 第5章函数 5.2 函数的分类 5.3 函数的定义和调用 5.6 系统函数 5.7 变量的存储类别、作用域、生存期 ?例5.1?一个简单函数调用的例子: #includestdio.h main() { hello(); /* 调用hello函数*/ } hello() /* hello函数 */ { printf (Hello,human \n); } 5.2 函数的分类 从有无返回值的角度进行分类 分为无值和有值函数。 4.从有无返回值的角度进行分类 从有无返回值的角度看,又可把函数分为有返回值函数和无返回值函数两种。 (1)有返回值函数:有返回值函数被调用执行完后将向调用者返回一个执行结果,称为函数返回值。 (2)无返回值函数:无返回值函数用于完成某项特定的处理任务,执行完成后不向调用者返回函数值。 5.3函数的定义和调用 5.3.1函数的定义(说明) 函数说明的一般形式为: 函数类型 函数名(数据类型 形式参数1, 数据类型 形式参数2,…,数据类型 形式参数n); 例如: int sql1(int m,int n,char c); /*说明一个整型函数*/ float sum(); /*说明一个浮点型函数*/ void stu(int n); /*说明一个无返回值的函数*/ 5.3.2函数的定义 函数的类型说明 函数名(带有类型说明的参数表) { 函数体; } 3.用return语句返回函数的值 函数的值是指函数被调用之后,执行函数体中的程序段所取得的并返回给主调函数的值。 对函数的返回值归纳起来有以下几点说明: (1)要想返回函数的值,只能通过return语句来实现。return 语句的一般形式为: return 表达式; 或者为: return(表达式); return语句的功能是计算表达式的值,并返回给主调函数。 ?例5.2?定义一个函数,该函数的功能是求出三个数中的最大数。 int max(int a, int b,int c) { int m; m=a; if(ab) m=b; if(mc) m=c; return(m); } 在C程序中,一个函数的定义可以放在任意位置,既可放在主函数main之前,也可放在main之后。 例如下面所示的程序是将max函数放在main之前。 #includestdio.h int max(int a, int b,int c) { int max=a; if(ab) max=b; if(maxc)max=c; return(max); } main() { int z,m,n,y; printf(input three numbers:\n); scanf(%d%d%d,m,n,y); z=max(m,n,y); printf(The max is %d,z); } 5.7.1变量的作用域 1.全局变量 2.局部变量 1.全局变量 在所有函数之外定义的变量称为全局变量。 全局变量的作用域为:从定义开始一直到程序结束。 2.局部变量 在函数(包括主函数)内部或复合语句的说明部分所定义的变量称为局部变量。 局部变量的作用域仅在它所定义的函数体或复合语句之内。 函数小结 1、函数就是子程序(程序段)。 2、函数分有值和无值(void型)函数。 3、一般的,函数要先定义后使用(即一般在主函数前面)。 4、全局变量就是所有函数之外定义的变量。局部变量就是某个函数里定义的变量。 { }中的内容称为函数体。 在很多情况下不要求无参函数有返回值,此时的函数类型符可以写为void。 例如: void Hello( ) { printf(Hello human\n); } Hello函数是一个无参函数,当该函数被其他函数调用时,输出:“Hello human”字符串。 2.调用的方式 1)函数表达式 2)函数语句 3)函数实参 1)函数表达式 函数作为表达式中的一项出现在表达式中,以函数返回值参与表达式的运算。这种方式要求函数有返回值。 例如: z=max(x,y)*8; 其中,函数max是赋值表达式的一部分,它的值乘以8后再赋予变量z。 2)函数语句 函数调用的一般形式加上分号即构成函数语句。 例如: printf(%d,m); max(x,y); 等都是以函数语句的方式调用函数。 ?例5.3?编写程序求四个整数的最大值。其中四个整数由键盘输入。 #includestdio.h int max(int a,
显示全部