【计算机】8 函数.pptVIP

  • 3
  • 0
  • 约1.31万字
  • 约 48页
  • 2018-02-26 发布于江苏
  • 举报
【计算机】8 函数

1、C语言的函数: C语言的函数是子程序的总称,包括函数和过程。(有返回值、无返回值,教材中称为:有返回值函数,无返回值函数)。 C语言函数可以分为库函数、用户自定义函数。库函数由系统提供,程序员只需要使用(调用),用户自定义函数需要程序员自己编制。 2、C语言的程序由函数组成,函数是C语言程序的基本单位。 C语言程序的结构如图所示。在每个程序中,主函数main是必须的,它是所有程序的执行起点,main函数只调用其它函数,不能为其它函数调用。其它函数没有主从关系,可以相互调用。所有函数都可以调用库函数。程序的总体功能通过函数的调用来实现。 3、使用函数的意义(补充) ①使用函数可以控制任务的规模 ② 使用函数可以控制变量的作用范围 ③使用函数,程序的开发可以由多人分工协作 ④使用函数,可以重新利用已有的、调式好的、成熟的程序模块 4、函数的一些概念 (1)主函数、其它函数 (2)主调函数(调用其它函数的函数)、被调函数(被其它函数调用的函数) (3)标准函数(库函数)和用户自定义函数 (4)无参函数、有参函数 (5)无返回值函数、有返回值函数 8.2 函数定义的一般形式 函数应当先定义,后调用 1、函数定义的一般形式 [函数类型] 函数名([函数参数类型1 函数参数名1][,…,函数参数类型2,函数参数名2]) { [声明部分] [执行部分] } 2、函数头(首部):说明了函数类型、函数名称及参数。 (1)函数类型:函数返回值的数据类型,可以是基本数据类型也可以是构造类型。如果省略默认为int,如果不返回值,定义为void类型。 (2)函数名:给函数取的名字,以后用这个名字调用。函数名由用户命名,命名规则同标识符。 (3) 函数名后面是参数表,无参函数没有参数传递,但“()”号不能省略,这是格式的规定。参数表说明参数的类型和形式参数的名称,各个形式参数用“,”分隔。 3、函数体:函数首部下用一对{}括起来的部分。如果函数体内有多个{},最外层是函数体的范围。 函数体一般包括声明部分、执行部分两部分。 (1)声明部分:在这部分定义本函数所使用的变量和进行有关声明(如函数声明)。 (2)执行部分:程序段,由若干条语句组成(可以在其中调用其它函数)。 4、函数定义举例: 输入三个整数,求三个整数中的最大值 不使用函数(除main外) main() { int n1,n2,n3,nmax; scanf(“%d%d%d”,n1,n2,n3); if(n1n2) nmax=n1; else nmax=n2; if(n3max) max=n3; printf(“max=%d\n”,nmax); } 使用函数 int max(int,int,int); main() { int n1,n2,n3,nmax; scanf(“%d%d%d”,n1,n2,n3); nmax=max(n1,n2,n3); printf(“max=%d\n “,nmax); } ? int max(int x,int y,int z) { int m; if(xy) m=x; else m=y; if(zm)m=z; return m; } 8.3 函数参数和返回值 8.3.1形式参数与实际参数 1、形式参数(形参):函数定义时设定的参数。 前例中,函数头int max(int x,int y,int z)中x,y,z就是形参,它们的类型都是整型。? 2、实际参数(实参):调用函数时所使用的实际的参数。 前例中,主函数中调用max函数的语句是:nmax=max(n1,n2,n3); 其中n1,n2,n3就是实参,它们的类型都是整型。 关于形参和实参的说明: a、形参只有当调用时才临时分配存储单元。 b、实参一定要有确定的值,可以是表达式。 c、实参和形参的类型应相同或赋值相容。 3、参数的传递 在调用函数时,主调函数和被调函数之间有数据的传递-实参传递给形参。具体的传递方式有两种: (1)值传递方式(传值):将实参单向传递给形参的一种方式。 (2)地址传递方式(传值):将实参地址单向传递给形参的一种方式。 对于传值,即使函数中修改了形参的值,也不会影响实参的值。参见书中图8.3和8.4。 对于传址,即使函数中修改了形参的值,也不会影响实参的值。但是,注意:不会影响实参的值,不等于不影响实参指向的数据。 “传值”、“传址”只是传递的数据类型不同(传值—一般的数值,传址—地址)。传址实际是传值方式的一个特例,本质还是传值,只是此时传递的是一个地址数据值。 C语言可以从函数(被调用函数)返回值给调用函数(这与

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档