内容正文:
第7章 一劳永逸的函数
C语言技能教程
第 七 章
7.1 技能1:认识函数
7.2 技能2:定义函数
7.3 技能3:了解函数的返回值
7.4 技能4:调用函数
7.5 技能5:认识变量的作用范围
C语言技能教程
7.1 技能1
【知识点】
1. 主调函数与被调函数。习惯上把调用者称为主调函数,被调用者称为被调函数。
2.各函数在程序中的位置是任意的。C程序的执行总是从main( )函数开始,完成对其它函数的调用后,再返回到main( )函数,在main( )函数中结束整个程序的运行。主可以调用其它函数,而不允许被其它函数调用,其它函数之间可以相互调用。
3. 同一个函数可以被一个或多个函数调用任意次。
C语言技能教程
7.1 技能1
【知识点】
4. 从用户使用的角度看,函数分为两种:
(1)标准函数,即库函数。这类函数由系统提供,用户可以直接使用;
(2)用户自定义函数。由用户按需要编写的函数;
5.从是否有返回值上看,分为返回值函数和无返回值函数。
(1) 有返回值函数。这类函数被调用执行完后向调用者返回一个执行结果,称为函数的返回值。如数学函数即属于此类函数。
(2)无返回值函数。此类函数用来完成某项特定的处理任务,执行完后不向调用者返回函数值。
C语言技能教程
例7.1 分析自定义函数程序的执行过程。
main( )
{int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);
printf("max=%d",c);}
int max(int x,int y)
{int z;
if (x>y) z=x;
else z=y;
return(z);
}
7.1 技能1
【典型例题】
C语言技能教程
7.2 技能2
1.函数的定义一般形式如下:
类型标识符 函数名(形式参数表)
{
函数体
}
【知识点】
C语言技能教程
7.2 技能2
2、对函数定义形式的说明:
(1)类型标识符
类型标识符说明的是函数的类型,即决定了函数返回值的类型。返回值可以是任何C的数据类型,如char、int、float、double 等。当是int类型时,类型标识符int 可以省略。不需要有返回值的函数,类型标识符可以明确为“空类型”,用关键字void说明。
【知识点】
C语言技能教程
7.2 技能2
2、对函数定义形式的说明:
(2)函数名
函数名取名要符合标识符的规则,函数名必须是唯一的,不能与其它函数或变量重名。函数名最好是见名知意。.函数的定义一般形式如下:
类型标识符 函数名(形式参数表)
{
函数体
}
【知识点】
C语言技能教程
7.2 技能2
对形参的说明方法有两种:
方法一:
int max(int x, int y) /*类型相同的形参也要分别定义其类型和名称*/
{
…
}
方法二: int max(x,y)
int x,y;
{ …
}
【知识点】
C语言技能教程
7.2 技能2
而下面函数定义中,对形参的说明是错误的:
int max(int x,y) /* 形参y没有定义类型*/
{
…
}
【知识点】
C语言技能教程
7.2 技能2
(4) 函数体
函数体是用一对花括号括起来的语句序列。函数体分为声明部分和语句部分。函数的任务就是由这些语句共同完成。在函数体中使用到的形参之外的变量,都必须在函数体的声明部分进行类型说明。
函数体中可以没有任何内容,这种函数称为空函数。这样的函数通常表示没有编写好的模块 ,以确保程序的完整,为了在最初的调试之中顺利通过语法检查。
例如:
dummy( )
{ }
【知识点】
C语言技能教程
7.2 技能2
3.函数的定义不能嵌套
即不能在一个函数体中,定义另外一个函数。
如:下面的函数定义是错误的。
void a( )
{
void b( )
{
…
}
…
}
【知识点】
C语言技能教程
7.2 技能2
4.自定义函数在程序中的位置
自定义函数可以放在main( )之前,也可放在main( )之后,每一个自定义函数在程序中的位置都是任意的。为了提高程序的可读性,习惯上常把自