欢迎来到天天文库
浏览记录
ID:56449573
大小:231.50 KB
页数:18页
时间:2020-06-18
《《C/C 程序设计》第04章(函数).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第四章函数4.1综述C是函数型语言,C程序的基本部件是函数.一个函数完成一个特定功能,整个程序的功能靠一系列的函数调用来实现.C程序的执行顺序与函数出现的顺序无关,只与函数的调用顺序有关.C约定无论何时,首先调用的函数是main().C函数分两种:用户自己定义的函数和库函数.使用库函数时应当包含其头文件.2main()f2()f3()f1()f4()f5()4.3函数的定义和调用4.3.1函数定义函数定义的一般形式:<函数属性说明><函数(值)类型说明><函数名>(<类型标示符><参数名1>[,<类型标示符><参数名2>,….])如:staticfloatsum(f
2、loatx,floaty)/*static、extern*/{说明部分执行部分返回部分[return表达式]}[例]求n!的函数。(exn.c)4.3.2函数的调用C语言规定,当在一个函数中要调用另一个函数时,则必须在调用函数的函数块中对被调函数进行类型的声明。(有例外)1.对被调用的函数的声明方式:[存储类别]数据类型函数名();如:staticintfun();floatarea();2.函数的调用格式调用一个带有参数的函数:函数名(实参表);如:fun(8);调用一个不带参数的函数:函数名();如:print();3.关于函数调用的几点说明(1)函数调用时,实
3、参和形参必须按位置在个数和类型上一一对应;(2)除void类型外的其它类型函数,调用方式如同系统库函数中的数学函数的调用形式一样,可以作为表达式的元素进行调用.(3)整型、实型、字符型函数,用return语句可以返回也只能返回一个函数值,如果希望能从函数返回多个值,则要采用指针、数组等其它传值方式。(4)C语言中如果形参不是指针、不是数组,则实参只能单向传值,即只能是实参将值传给形参,而形参不能将值返回给实参。(5)C语言规定在调用一个函数时,应该对被调函数进行声明。但有三种情况可以不用声明:·如果调用的函数是整型和字符型·如果被调函数是放在主调函数的前面·如果被调
4、函数已经作了全局声明[例]求素数函数。(exprime.c)4.4变量的存储类别和变量的使用范围变量的存储类型规定了该变量的存储区域,而变量的存储区域和变量在程序中的定义位置决定了变量的使用范围。内容:.什么是局部变量和全局变量(变量的作用范围).什么是动态变量和静态变量(变量的存储类别).什么是寄存器变量等有关概念。4.4.1变量的存储类别(auto、static、register、extern)一、auto型:auto型变量在堆栈区域中属于临时性的存储,它并不长期占用内存。因此,C语言程序中大量的变量为auto型的变量,如果某个变量没有指出它的存储类别,则系统默
5、认它为auto型变量。使用auto型变量可以节省内存空间。只有局部变量和形参可以定义为auto类型。二、static型:static型变量是存放在内存的静态存储区域中。这类变量在数据声明时被分配了一定的内存空间,并且这些空间在整个程序的运行过程中,它所占有的空间不释放出来,自始至终都归它使用。其初始化只执行一次。如:staticintt;[例]exstatic.c(比较staticintt=1;与intt=1;的不同)三、register型四、extern型:在函数内部定义的变量,都局限在函数内部使用。定义在函数外部的变量,可以与其它函数或其它文件共享数据。exte
6、rn语句就是用来对外部变量进行存储方式说明。外部变量提供了不同函数间进行数据通讯的另一种途径。因此当一个程序要用到另一个程序中的某个变量时,就需要将该变量声明为extern类型。4.4.2变量的作用范围变量在程序中的声明位置决定了变量的使用范围。在一个函数内部定义的变量,或在某一对大括号中定义的变量,它的作用范围就在定义的范围之内,脱离了这个范围它们的值就不存在了,这样的变量称为局部变量,也可称为内部变量。与此相对应,有些变量存在于整个程序的运行期间,他们是定义在函数的外部,称全局变量,其特点为能在不同的函数块之间进行数据的传递。具有静态存储的特点。(例求10个数中
7、的最大值exmax.c)4.5函数间的传值一般而言,函数调用过程中先要向被调函数传递要处理的数据(函数参数);被调函数执行完毕,要向主调函数返回处理结果(函数值)。称之为参数传递例如:power_1(x,n);C函数可以有参数,也可无参数;C函数可以有返回值(函数值)也可无返回值,视需要而定。当定义无参数函数时,函数括号中为空,用void显式地标示更好。例如:charstr_cpy();或:charstr_cpy(void);当定义无返回值函数时,用void显式地标示更好。例如:voidshow(inta,floatx);缺省类型说明时,C默认该函数为int型。
此文档下载收益归作者所有