chap函数与宏定义.pptx
上传人:骑着****猪猪 上传时间:2024-09-15 格式:PPTX 页数:40 大小:205KB 金币:20 举报 版权申诉
预览加载中,请您耐心等待几秒...

chap函数与宏定义.pptx

chap函数与宏定义.pptx

预览

免费试读已结束,剩余 30 页请下载文档后查看

20 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

会计学6.1函数概念6.1.1函数的定义例:intmax(x,y)intx,y;/形式参数说明/{intz;/函数体中的说明部分/z=x>y?x:y;return(z);}函数参数和函数的值形参变量在被调用前不占用存储单元;在被调用结束后,形参所占存储单元亦被释放。实参可以是常量、变量或表达式。必须指定形参类型,且应与实参的类型一致。实参对形参的数据传递是“值传递”。即单向传递,不能逆传。函数的返回值是通过return语句获得的。return语句的后面可以有括号,也可以没有。如:returnz;return(z);return语句的后面可以是变量,也可以是表达式。如:return(x>y?x:y);return语句返回值的类型应与该函数的类型一致。否则以函数类型为准。函数类型缺省时按整型处理。若函数中没有return语句,则函数被调用后也会带回不确定的值。1.函数调用的一般形式函数名(实参表)说明:对于无参函数,也不得省略一对小括号。“实参表”中的参数之间用逗号分开。实参与形参之间的个数及类型必须一一对应。将函数调用作为一个语句。如:printf(“MSCpragramming”);gets(s);将被调用的函数写在表达式中。如:c=2max(a,b);注意:被调用函数max必须有确定的返回值。将函数调用作为一个函数的实参。如:m=max(max(a,b),c);3.对被调用函数的说明在一个函数中调用另一个函数时:如果被调函数为库函数,则应在文件开头用“#include”命令声明相应的“头文件”。如:#include“stdio.h”#include“math.h”如果被调函数为自定义函数且其定义在主调函数定义之前,则在主调函数中可不必声明。如果已在所有函数定义之前已作了函数声明,则在各主调函数中可不必对所调用的函数再作声明。如:charletter();floatf();inti();main(){……}/不必说明它所调用的函数的类型/1.局部变量局部变量----在一个函数内部定义的变量,只能在本函数内使用和有效。主函数main中定义的变量,也只能在主函数内使用和有效。不同的函数中可以使用相同名字变量,且互不干扰。形式参数也是局部变量,也只能在所在函数内使用和有效。可以在一个函数内的复合语句中定义变量,且这些变量只在本复合语句中有效。这种复合语句也称为“分程序”或“子模块”。2.全局变量全局变量(外部变量)-----在函数(包括main函数)外定义的变量。其有效范围为从定义变量的位置开始到本源文件结束。输出结果:10,4,810,2,5内存中供用户使用的存储区由程序区、静态存储区和动态存储区组成。变量的存储类型有四种:自动的(auto):内存的动态存储区静态的(static):静态存储区寄存器的(register):寄存器静态变量在程序的运行期间占用固定的存储空间,直到程序的终止而释放;动态变量是在程序的运行期间随着函数的调用随时动态地占用和释放存储空间。局部变量的存储方式函数中的局部变量若未专门说明,这类局部变量称为自动变量,其类型说明前不论是否有关键字“auto”,都属于动态存储类别。局部静态变量在静态存储区分配存储单元,在程序的整个运行期间都不释放。在编译时只赋初值一次,以后每次被调用时不再重新赋值而只保留前次被调用结束时的值。若未赋初值,则在编译时自动赋初值0(数值型)或空字符(字符型)。虽然局部静态变量在函数被调用结束后其值仍然存在,但其它函数是不能引用的。动态变量在动态存储区分配存储单元,函数调用结束后即释放。赋初值不是在编译时而是在函数被调用时进行的,函数每次被调用时重新赋值。若未赋初值,则其值是不确定的例打印1到5的阶乘值。intfac(intn){staticintf=1;/定义f为int型静态变量/f=fn;return(f);}main(){inti;for(i=1;i<=5;i++)printf(“%d!=%d\n”,i,fac(i));}3.全局变量的存储方式全局变量存储在静态区。用extern作声明可以引用另一个文件中定义的全局变量。但用static定义的全局变量不能被其它文件引用。根据函数是否能被其它文件所调用,分为:1.内部函数----只能被本文件的其它函数所调用的函数定义方式如:staticintfun(a,b);2.外部函数----可以被其它文件所使用的函数。定义方式如:externintfun(a,b