第8章函数2 第14次课PPT讲稿.ppt
《第8章函数2 第14次课PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《第8章函数2 第14次课PPT讲稿.ppt(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第8章 函数2 第14次课第1页,共26页,编辑于2022年,星期一一维数组名作函数实参一维数组名作实参时,形参的设置方法有三种:以int型为例,n表示元素个数(1)fun(int*p,int n)(2)fun(int p,int n)(3)fun(int p10,int n)/n不能超过10理解例8.12第2页,共26页,编辑于2022年,星期一二维数组名作函数实参二维数组名作实参时,形参的设置方法有三种:以int型为例,n表示行数,m表示例数(1)fun(int(*p)4,int n,int m)(2)fun(int p 4,int n,int m)/m不能超过4(3)fun(int p1
2、04,int n,int m)/n不能超过10,m不能超过4理解例8.15第3页,共26页,编辑于2022年,星期一8.6.3函数指针函数指针1.函数指针的定义函数指针的定义函数指针的一般定义格式为:函数类型函数类型(*指针变量名指针变量名)(形参列表形参列表);2.函数指针的赋值函数指针的赋值int fun(float x);int(*fun_p)(float);fun_p=fun;第4页,共26页,编辑于2022年,星期一 例例8.19 函数指针的用法函数指针的用法 int fun(int n)int i,sum=0;for(i=1;i=n;i+)sum+=i;return sum;voi
3、d main()int(*p)(int);/为 int Sum(int n)定义的函数指针/(1)int sum;p=fun;/(2)给函数指针赋值sum=p(100);/(3)通过函数指针调用函数,等价于 sum=fun(100);printf(“sum=%dn,sum);第5页,共26页,编辑于2022年,星期一理解例8-20第6页,共26页,编辑于2022年,星期一8.7.1 变量的作用域变量的作用域 C语言中所有的变量都有自己的作用域,按作用域语言中所有的变量都有自己的作用域,按作用域范围可分为两类:局部变量和全局变量。范围可分为两类:局部变量和全局变量。1.局部变量局部变量 局部变量
4、是指在函数内部定义的变量,函数的形参局部变量是指在函数内部定义的变量,函数的形参也属于局部变量。局部变量的作用域仅限于定义它的函也属于局部变量。局部变量的作用域仅限于定义它的函数体内部。通常,这些变量的定义放在函数体的最前部,数体内部。通常,这些变量的定义放在函数体的最前部,即函数定义中的即函数定义中的“说明语句说明语句”部分。部分。8.7 变量的作用域和存储类别变量的作用域和存储类别第7页,共26页,编辑于2022年,星期一void fun_1(int a)int x,y;/定义定义fun_1()函数内部的局部变量函数内部的局部变量void fun_2(int a)int x,y;/定义定义
5、 fun_2()函数内部的局部变量函数内部的局部变量void main()int x,y;/定义定义 main()函数内部的局部变量函数内部的局部变量 fun_1(x);fun_2(y);【例例8.21】局部变量使用示例。局部变量使用示例。第8页,共26页,编辑于2022年,星期一 在函数外定义的变量称为全局变量,也称外部变量。全在函数外定义的变量称为全局变量,也称外部变量。全局变量的作用域从定义的位置开始直到本源程序的结束。局变量的作用域从定义的位置开始直到本源程序的结束。【例例8-22】全局变量使用示例。全局变量使用示例。int x=2,y=3;/全局变量的定义全局变量的定义void fu
6、n(void)x+;/引用全局变量引用全局变量x和和y y+;void main()fun();x+;/引用全局变量引用全局变量x和和y y+;printf(%d,%dn,x,y);2.全局变量全局变量第9页,共26页,编辑于2022年,星期一(1)程序区)程序区(2)静态存储区)静态存储区(3)局部变量区。)局部变量区。(4)堆()堆(heap)区)区(5)文字常量区)文字常量区8.7.2 变量的存储类别变量的存储类别用户存储空间一般分为五类:用户存储空间一般分为五类:第10页,共26页,编辑于2022年,星期一自动变量(自动变量(auto)寄存器类变量(寄存器类变量(register)静态
7、变量(静态变量(static)外部变量(外部变量(extern)C语言中的变量存储类别分为以下四种:语言中的变量存储类别分为以下四种:第11页,共26页,编辑于2022年,星期一 自动变量用关键字自动变量用关键字auto表示,此类变量放在动态表示,此类变量放在动态存储区里,是存储区里,是C语言中使用最广泛的一种类型。函数的形语言中使用最广泛的一种类型。函数的形参,函数体或复合语句内部定义的缺省存储类别的变量都参,函数体或复合语句内部定义的缺省存储类别的变量都属于自动变量。自动变量定义的格式为:属于自动变量。自动变量定义的格式为:auto 数据类型说明符数据类型说明符 变量名表;变量名表;例如,
8、例如,int x;等价于等价于 auto int x;注意:不能在声明形参时使用注意:不能在声明形参时使用auto关键字。关键字。1.自动变量(自动变量(auto)第12页,共26页,编辑于2022年,星期一(1)自动变量的作用域仅限于定义该变量的函数或复合)自动变量的作用域仅限于定义该变量的函数或复合语句内。语句内。(2)自动变量的生存期从定义该变量的函数调用开始)自动变量的生存期从定义该变量的函数调用开始到函数运行结束。因此函数调用结束之后,自动变量的到函数运行结束。因此函数调用结束之后,自动变量的值不能保留;在复合语句中定义的自动变量,在退出复值不能保留;在复合语句中定义的自动变量,在退
9、出复合语句后也不能再使用。合语句后也不能再使用。(3)由于自动变量的作用域和生存期限于定义它的函数体)由于自动变量的作用域和生存期限于定义它的函数体或复合语句内,因此,不同的函数或复合语句中允许使用同或复合语句内,因此,不同的函数或复合语句中允许使用同名的变量而不会混淆。名的变量而不会混淆。auto变量具有以下特点:变量具有以下特点:第13页,共26页,编辑于2022年,星期一 寄存器变量用关键字寄存器变量用关键字register表示,也属于动态变量,表示,也属于动态变量,它与它与auto变量的区别是:变量的区别是:register变量的值存放在变量的值存放在CPU的的寄存器中,寄存器中,au
10、to变量的值存放在内存单元中。程序运变量的值存放在内存单元中。程序运行时,行时,CPU访问寄存器的速度比访问内存的速度快,因此访问寄存器的速度比访问内存的速度快,因此把变量设置为把变量设置为register型将提高程序运行的速度。寄存器型将提高程序运行的速度。寄存器变量定义的格式为:变量定义的格式为:register 数据类型说明符数据类型说明符 变量名表;变量名表;例如,例如,register int x;2.寄存器变量(寄存器变量(register)第14页,共26页,编辑于2022年,星期一 静态变量用关键字静态变量用关键字static表示,此类变量存放在静态存储区表示,此类变量存放在静
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第8章 函数2 第14次课PPT讲稿 函数 14 PPT 讲稿
限制150内