C程序设计:第八章函数_第1页
C程序设计:第八章函数_第2页
C程序设计:第八章函数_第3页
C程序设计:第八章函数_第4页
C程序设计:第八章函数_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章 函数8.1 概述(4)Main()函数(5) 函数分类:标准函数用户自定义函数无参函数有参函数凡函数不加类型说明的,一律按整型下列调用将是错误的:函数参数的结合性:右结合性8.4.2 函数调用的方式1、函数语句Printstar();2、函数表达式C=2*max(a,b);3、函数参数M=max(a,max(b,c);8.4.3对被调用函数的声明和函数原型(1)被调用函数已经存在(2)如果被调用函数在后面定义,在前面主调函数中必须先声明一般int、char型函数不用先声明。(2)(3)Y2=y;直接递归间接递归 3 A B C A C2 A C B1 A B C A CA B1 C A

2、 B C B2 B A C1 B C A B A B C 1 A B C A C8.7数组作为函数参数(值传递与地址传递)1、数组元素作函数实参 n:a大于b的个数 m:a等于b的个数 k: a小于b的个数2、数组名作函数参数(地址传递)1、数组名作参数,实参与形参都必须定义2、实参与形参类型必须一致,大小可以不一致,并且形参可以不指定大小。C编译不对形参大小作检查,只将实参首地址传给形参。例8.11可以改为:地址传递实例:错误void sort2(float a2)float x; if (a0a1) x=a0;a0=a1;a1=x; return;main()float b2;scanf(

3、%f,%f,&b0,&b1);sort2(b);printf(max=%f,min=%fn,b0,b1);3、用多维数组名作函数参数形参可以省略第一维大小的说明。实参数组必须大于等于形参数组个数。8.8局部变量与全局变量1、局部变量:函数内定义的变量。(内部变量,如参数)2、全局变量:函数外定义的变量。(外部变量,习惯上第一个字 母大写)作用域:有效的范围局部:函数内全局:从定义程序结束全局变量实例:全局变量缺点:破坏封闭性、清晰性。建议少用。*8局部变量与全部变量重名 8.9变量的存储类别1、分类静态存储类:程序运行时分配固定的存储空间动态存储类:程序运行时根据需要动态分配存储空间具体分为:

4、自动型变量 auto静态型变量 static寄存器型变量 register外部变量声明 extern自动型变量 auto:在动态存储区分配存储空间 未定义存储类别的变量均为auto 型 存储类别 数据类别 变量1,变量2,变量n; auto int b,c=3;只能取其一用static 声明局部变量:只能赋一次初值,函数结束后仍保留原 值,但在函数外不能用。下次调用时已 有初值。作用域不等于生存期。 7 8 9 static不赋初值为0(数值型)或为空(字符型)。 auto-不赋初值为一个不确定值。register变量:节省到内存的存取时间 不能定义太多的寄存器型变量 优化的编译系统能自动识别

5、、自动设register型。 static型变量不能设为register 型 。用extern 声明外部变量:如果在外部变量定义之前,使用该变量 则必须在引用该变量之前,用extern来 声明 该变量。 *在一文件中使用另一个文件中定义的变量,必须用extern 来对该变量进行声明 。用static 声明 外部变量: 用static 声明 外部变量不能再被其它文件使用,只限于定义的文件使用。*文件2不能使用文件1中的外部变量定义性声明:定义引用性声明:声明 8。10 内部函数与外部函数内部函数:只能被本文件中的其它函数调用的函数。格式为:外部函数:可以被其它文件调用的函数。(1)、定义格式为:

6、 extern 类型标识符 函数名 (形参表) *定义外部函数时extern 可省略(2)、其它文件调用该函数时,要事先用extern 声明。*main()原有的extern声明可以不要1、C语言中,若未说明函数的类型,则系统默认该函数的类型为_。Afloat B.char C.int D.double 2、#include main()int a=1,b=2; printf(%d,f(a,b);printf(%d,f(a,b);f(int x,int y )static int a=3,b=4; a + = b * 2 ; b = a + x + y ;return (b) ;结果为:_.3

7、、如果要使一个变量只能为本函数所使用,必须通过来实现。(A)外部变量说明 (B)静态内部变量(C)静态外部变量 (D)局部变量说明 4、以下正确的函数定义形式是。 (A)int max(int x,int y); (B) int max(int x;int y);(C) int max(int x,int y) (D) int max(int x, y);5、int test()int x=0; static int y=2;y+=+x;return(x+y); main() printf(“%dn”,(test(),test();该程序的运行结果为: 6、main() int n=1,a2=1,2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论