欢迎来到天天文库
浏览记录
ID:48701770
大小:55.50 KB
页数:20页
时间:2020-01-19
《第10讲 函数与变量(1).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第十讲函数与变量7.1函数的概念7.2函数的定义7.3函数参数和函数值7.4函数的调用7.1函数的概念函数是C语言程序的组成部分,C语言程序的功能可以通过函数之间的调用来实现。C语言函数分为两类:(1)标准函数:系统提供的已设计好的函数。(2)用户定义的函数:用户自己编写的用来解决具体问题的函数。说明:(1)一个源程序文件由一个或多个函煤炭九组成。一个源程序文件是一个编译单位,即以源文件为单位进行编译。(2)一个C程序由一个或多个源程序文件组成。(3)C和程序的执行从main函数开始,调用其它函数流程回到main函数,在main函数中,结束整个程序的
2、运行。Main函数是系统定义的。(4)所有函数都是平行的,即在定义函数时,是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义,但可以互相调用,但不能调用main函数。(5)从函数的形式看,函数分两种:(a)无参函数:主调函数并不将数据传送给被调用函数。(b)有参函数:在调用函数时,在主调函数和被调函数之间有参数传递,也就是说,主调函数可以将数据传送给被调用函数使用,被调用函数中的数据也可以带回来供主调函数使用。例7.1main(){p1();p2();p1();}p1{printf(“******”);}p2{printf(“Welc
3、ome”);}运行结果:******Welcome******7.1函数的定义7.2.1无参函数的定义类型标识符函数名(){说明部分语句}说明:用“类型标识符”指定函数值的类型,即函数带回的值的类型。C语言默认返回值的类型是整型。7.2.2有参函数的定义类型标识符函数名(形式参数表列)形式参数说明{说明部分语句}说明:(1)函数类型标识符:指出return语句返回的值的类型,它可以是C中代任意合法的数据类型。(2)函数名:应是一个标识符。函数名后的一对圆括号是函数的象征。(3)形式参数表列:是写在圆括号中的一组变量名,称为形式参数,形式参数之间用
4、逗号分隔。无参函数,圆括号内为空。(4)形式参数说明:是对形式参表列中的每一个形式参数所作的类型说明,应写在用花括号{}括起来的孙函数体的前面。(5)函数体:用{}括起来的部分,函数体是由说明部分和语句部分组成的。例如:Intmax(x,y);intx,y;/*形式参数说明*/{intz;/*函数体中的说明部分*/函数体z=x>y?x:y;return(z)}7.3函数参数和函数值7.3.1形式参数和实际参数在调用函数时,大多数情况下,主调函数和被调函数之间有数据传递关系。在定义函数时,函九名后面括号中变量名称为“形式参数”,简义“形参”。在调用函数
5、时,函数名后面括号中的表达式称为“实际参数”,简称“实参”。例7.2求二数中较大数。main{inta,a,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“maxis%d”,c);}max(x,y)intx,y;{intz;z=x>y?x:y;return(z);}关于形参与实参的说明:(1)在定义函数中指定的形参变量,在末出现函数调用时,它们并不占内存中的存储单元。只有发生函数调用时函数max中的形参才被分配内存单元。调用结束后,形参所占用的内存单元也同时被释放。(2)实参可以是常量、变量或表达式,如:max(3
6、,a+b);但要求它们有确定的值。在调用时将实参的值赋给形参变量(如果形参是数组名,则传递的是数组首地址,而不是变量的值)。(3)在定义的函数中,必须指定形参的类型。(4)实参与形参的类型应一致。只有字符型和整型可以互相通用。(5)实参变量对形参变量的数据传递是“值传递”,即单向传递,只由实参传给形参,而不能由形参传回来给实参。在内存中,实参单元与形参单元是不同的单元。在调用函数时,给形参分配存储单元,并将实参对应的值传递给形参,调用结束后,形参单元被释放,实参单元仍然保留并维持原值,形参的值如果发生改变,并不会改变主调函数的实参值。(6)ANSI新
7、标准允许使用另一种方法对形参类型说明,即在列出“形参表列”中同时说明形参类型。如:intmax(intx,inty)7.3.2函数的返回值函数的返回值是由return语句传递的。格式:return(表达式);或return表达式;功能:用return语句从函数中退出,返回到调用它的程序中。该语句有两重作用:(1)从函数中退出,返回到调用它的程序中。(2)向调用程序返回一个值。说明:(1)一个函数中可以有多个return语句,当执行到某个return语句时,程序的控制流程返回到调用函数,并将return语句中的表达式的值作为函数值带回。(2)若函数体内
8、没有return语句,就一直执行到函数体的末尾,然后返回调用函数。这时带回一个不确定的函数值。(3)若确时不
此文档下载收益归作者所有