函数的定义和调用
7.2函数定义
函数定义的一般形式:
类型标识符 函数名(形式参数表列)  函数定义函数首部不要以分号结尾
{
说明部分
执行部分
}
例:
int maxint aint b  /*函数首部*/ 类型标识符函数名形式参数表列
{                    /*函数体开始*/
int  z;          /*说明部分*/
  if(a>b)z=a;    /*执行部分*/
  else z=b;     
  return(z);
int函数啥意思}
说明:函数定义包括函数首部和函数体两部分。
类型标识将是指函数返回值的类型,简称函数值类型。函数的返回值由函数中的return语句获得,即return后的表达式的值,可以是简单类型、void类型或构造类型等,注意一般函数返回什么类型的数据,函数的类型就定义成相应的类型。void类型为空类型,表示函数没有返回值。如希望不返回值,可以定义函数类型为void类型,当函数值类型为int时,可省略函数类型的说明。关于return:函数的值只能通过return语句返回主调函数,返回函数值的类型和函数定义中函数的类型应保持一致,如果函数值为int型可以省略函数类型说明,不返回函数值的函数,明确定义成空类型。
函数名是函数的标识符。函数名取名遵循c语言标识符的命名规则,区分大小写。函数名后的形式参数表列给出函数的形式参数及其类型说明。
形式参数简称形参,形式参数及其类型说明放在函数名后的一对圆括号中.无论函数是否有形式参数,函数名后的圆括号不可省;圆括号内没有形式参数的函数我们称之为无参函数,有形式参数的函数我们称为有参函数。强调:没有形式参数圆括号也不能省。形式参数可以是各种类型的变量,形式为:形参1类型 形参1,形参2类型 形参2 各参数之间用逗号间隔。在进行函数调用时,主调函数将赋予这些形式参数实际的值。
函数体:函数说明之后的花括号“{}”括起来的部分,包括声明部分和执行部分:
1)声明部分:用来对函数中使用的变量和函数作说明。
2)执行部分由基本语句组成.函数的功能由函数体内的各个语句的执行来实现。
解释函数
函数的调用
一个函数被定义后,程序中的其他函数就可以使用这个函数,这个过程称为函数调用。
1。函数调用的一般形式
函数名(实参表列);实际参数表中的参数可以是常数、变量或构造类型数据,各实参之间也是用逗号分隔。对无参函数调用时无实际参数表。
函数有以下三种调用方式:
(1) 函数表达式:函数调用出现在一个表达式中、这种表达式称为函数表达式。例如w=max(x,y);此时要求函数返回一个确定的值.参加表达式的计算。这里把max的返回值赋给变量w。
(2) 函数语句:把函数调用作为一个语句,例如:printf(“%d”,a) ,这是以函数语句的方式调用函数。
(3)函数参数。函数调用作为一个函数的实参,把函数的返回值作为实参传递,一次要求函数必须是有返回值的。例如:m=max(a,max(b,c);  其中max(b,c)是一次函数调用,它的值作为max另一次调用的实参。
2.函数调用语句的执行过程
计算每个实参表达式的值,并把此值存人被调用函数所对应的形参单元中;把执行流程转入被调用函数体.执行函数体中的语句;当执行到彼调用函数体的右花括号或return语句时,被调用函数体执行完成,返回到主调函数中此次调用函数语句的下一条语句,继续往下执行。
版书书上P72例子讲解
#include<stdio.h>     
int max(int a,int b)      函数定义,详细的说明函数的功能,不管main函数在什么位置,
{                    程序的执行总是从main函数开始的。main函数中z=max(x,y)
  if(a>b) return a;      语句表示主函数调用了max函数,是哪一种调用方式呢?函数
else return b;        表达式的方式,函数调用时,实参x的值传递给相应的形参a
}                    实参y传递给相应的形参b,若scanf输入3,5,x、y的值分别
main()                是?a、b的值分别是?开始调用max函数,main函数暂时停止
{                    运行,解释max函数。max函数执行的结果将两数中的大者返
  int x,y,z;            回。这里主函数中设置返回值赋给z。调用结束后返回到主调
printf(input two numbers:\n); 函数中此次调用函数语句的下一条语句,继续往下执行。
scanf(%d%d,&x,&y);      也就是开始执行printf语句。
z=max(x,y);
printf(maxmum=%d,z)
}
上面讲的是函数定义放在main函数之前的情况。那么如果函数定义放在main函数之后,必须在函数调用以前对函数进行声明。书上的例子:
int max(int a,int b);  由于max函数放在main之后,
main()                在调用之前要进行声明,意思是告诉计算机编译系统,程序将
{                    出现一个max函数,不能太突然了,吓人家一大跳
  int x,y,z;            函数声明与函数定义中的函数首部相同,但是末尾要加分号
printf(input two numbers:\n);        函数声明时里面的参数可以省略不写,写成
scanf(%d%d,&x,&y);              int max(int,int),也可以和定义的参数不同,但是
z=max(x,y);                      类型标识符不能省略,而且两个参数则对应两
printf(maxmum=%d,z)              个类型说明符,这里不能只写一个int
}
int max(int a,int b)   
{                 
  if(a>b) return a;     
else return b;       
函数的形式参数和实际参数见教材P73

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。