资源描述:
《C语言函数篇讲解.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第六章函数教学目标:掌握函数的定义;理解并运用函数的调用;理解函数的声明。教学重点:函数的定义;函数的调用。教学难点:函数的定义。教学时数:4学时6.1概述printstar(){printf(“******************”);}main(){printstar();printmessage();printstar();}printmessage(){printf(“Howdoyoudo!”);}例:结果:******************Howdoyoudo!******************说明:1.一个源程序文
2、件由一个或多个函数组成,但必须有且仅有一个main函数。2.C程序的执行从main函数开始,调用其他函数后,流程回到main函数,main函数结束整个函数的运行。3.由主函数调用其他函数,其他函数也可互相调用,但不能调用main函数。同一个函数可以被一个或多个函数调用任意多次。4.从用户角度看,函数分为两种:①标准函数:即库函数,由系统提供。②用户自定义函数:用户自己定义的。5.从函数形式看,函数分为两种:①无参函数。②有参函数。6.2函数定义的一般形式一函数定义的一般形式列表类型标识符函数名(类型1形参1,类型2形参2,…){声明部分语
3、句}二说明:1.所有函数在定义时都是互相独立的,即不能嵌套定义;2.类型标识符:说明了函数返回值的类型,当返回值为int时,可省略不写;3.函数名:遵循标识符的命名规则;同一个函数中函数名必须唯一;形式参数4.形参:只能是变量,每个形参前要有类型名;当定义的函数没有形参时叫作“无参函数”;形式:类型标识符函数名(){声明部分语句}5.函数体:当声明部分和语句都没有时,称为“空函数”,空函数没有任何实际作用;形式:类型说明符函数名(){}例如:dummy(){}例如:intmax(intx,inty){intz;z=x>y?x:y;ret
4、urn(z);}函数名返回值类型形参1形参2声明部分语句(执行部分)函数体6.3函数参数和函数的值一形式参数和实际参数实际参数:调用函数时,函数名后面括弧中的参数称为“实际参数”(简称实参)。形式参数:定义函数时,函数名后面括弧中的参数称为“形式参数”(简称形参)。例如:main(){inta,b,c;scanf(“%d,%d”,&a,&b);c=max(a,b);printf(“Maxis%d”,c);}max(intx,inty){intz;z=x>y?x:y;return(z);}二关于形参与实参的说明:1.未出现函数调用时,形参变
5、量不占内存中的存储单元。在发生函数调用时,形参才被分配内存单元。调用结束后,形参所占的内存单元被释放。2.实参可以是常量、变量或表达式,必须有确定的值。在调用时,将实参的值赋给形参变量。3.实参与形参的类型应相同或兼容。如果类型不一致,则将实参转换为和形参类型一致时再赋值。例如:main(){intc;c=max(3.5,5+2);printf(“Maxis%d”,c);}max(intx,inty){intz;z=x>y?x:y;return(z);}4.实参变量对形参变量是单向的“值传递”。即只能实参传给形参,不能由形参传回来给实参。
6、在内存中,实参单元与形参单元是不同的单元。main(){inta=10,b=20;alter(a,b);printf(“a=%d,b=%d”,a,b);}alter(intx,inty){intt;t=x;x=y;y=t;}1020abxy10202010总结:形参的值发生改变,并不能影响实参。三函数的返回值1.函数通过return语句返回函数的值,若不需要返回函数值,可以不要return语句。形式:return(表达式);return(变量);return(常量);例如:returnz;或return0;或return(a+b);2
7、.定义函数时,函数的返回值类型应与return语句中的表达式类型一致。如果不一致,则以函数类型为准。括号可省略3.若函数中没有return语句,函数也会带回一个不确定的值,为了明确表示“不带回值”,用关键字“void”定义“无类型”(或称“空类型”)。例:voidprintstar(){printf(“******************”);}main(){printstar();printmessage();printstar();}voidprintmessage(){printf(“Howdoyoudo!”);}这样,系统
8、就保证使函数不带回任何值。6.4函数的调用一函数调用的一般形式函数名(实参表列);或函数名();说明:1.各实参间用逗号格开。2.实参与形参的个数应相同,类型应一致。3.被调用函数必须是已经存