文档详情

计算机技术基础-c语言讲义-4.ppt

发布:2025-06-05约1.5万字共75页下载文档
文本预览下载声明

8.函数举例:main(){ inta,b,c; a=2342; b=8542; c=max(a,b); printf(max=%d\n,c);}intmax(intx,inty){ intz; z=xy?x:y; return(z);}

8.函数8.2函数定义的一般形式8.2.1函数定义的一般形式格式:类型标识符函数名〔形式参数列表〕{ 声明局部; 语句;}问题:〔1〕函数类型可以省略,系统隐含指定函数类型为int型。〔2〕形式参数可以缺省,函数为无参函数〔3〕函数体内可以没有任何语句和声明,此时为“空函数”。intmax(intx,inty){ intz; z=xy?x:y; return(z);}

8.函数8.3函数参数和函数的值8.3.1形式参数和实际参数形式参数:在定义函数时,函数名后面括号中的变量名称为“形式参数”;实际参数:在调用一个函数时,函数名后面括号中的参数为“实际参数”,max()函数:形参:x,y实参:a,bmain(){ inta,b,c; a=2342; b=8542; c=max(a,b); printf(max=%d\n,c);}intmax(intx,inty){ intz; z=xy?x:y; return(z);}

8.函数说明:〔1〕形参在发生函数调用时才被分配内存单元,在调用结束后释放形参所占的内存单元。〔2〕定义函数时,必须指定形参的类型。〔3〕实参可以是常量、变量或表达式。〔4〕实参和形参的类型应该“相同”或“赋值兼容”。〔5〕C语言规定,参数变量对形参变量的数据传递是“值传递”,即单向传递。方向:实参?形参〔函数中,改变形参的值不会影响实参的值。〕main(){ inta,b,c; a=2342; b=8542; c=max(a,b); printf(max=%d\n,c);}intmax(intx,inty){ intz; z=xy?x:y; return(z);}

8.函数参数变量对形参变量的数据传递是“值传递”,即单向传递。#includestdio.hmain(){intx=7,y=11;printf(x=%d,y=%d\n,x,y);printf(swapped:\n);swap(x,y);printf(x=%d,y=%d\n,x,y);}intswap(inta,intb){inttemp;temp=a;a=b;b=temp;}

8.函数8.3.2函数的返回值8.3.2.1通过return语句获得函数的返回值。a)函数可以不返回值,即不要return语句b)函数中可以出现一个或一个以上的return语句,具体执行到那条return语句,那条return语句决定函数的返回值。main(){ inta,b,c; a=2342; b=8542; c=max(a,b); printf(max=%d\n,c);}intmax(intx,inty){ intz; z=xy?x:y; return(z);}intmax(intx,inty){ if(xy) return(x); else return(y);}

8.函数c)return语句的()可以省略。d)return后面可以是变量、常量或表达式。intmax(intx,inty){ return(xy?x:y);}

8.函数8.3.2.2函数值的类型〔1〕在函数定义时指定函数的类型〔2〕没有说明类型的函数,系统自动按照整型处理。〔3〕函数值的类型应该与return语句的表达式类型一致。〔4〕函数类型决定返回值的类型。如果函数值的类型与return语句的表达式类型不一致,那么以函数类型为准。对于数值型数据,系统自动进行类型转换。建议:函数值的类型与return语句的表达式类型保持一致。main(){ inta,b,c; a=2342; b=8542; c=max(a,b); printf(max=%d\n,c);}intmax(intx,inty){ intz; z=xy?x:y; return(z);}

8.函数8.3.2.3函数值的返回〔函数中没有return语句〕〔1〕函数类型为非void类型函数自动返回一个不确定的值。C8_3_2_3.c〔2〕函数类型为void类型作用:强制性地让函数不返回任何值。结果:任何企图使用void函数的返回值的操作都为非法。所以C程序中,但凡不需返回函数值的函数一般都定义成void类型。

8.函数8.4函数的调用8.4.1函数调用的一般形式格式

显示全部
相似文档