Include <stdio. h> 原型:说明函数的类型、名称、参数 int add(int, intp 类型及参数个数,以便编译过程在函 void main( 数调用中对照检查。 iint a, b, sum; scanf(%d”,&a); scanf(%d”,&b) sum=ad(a,b);∥调用 printf((“sum=%dn”,sum); int add(int X, int y) I int z 定义:说明函数的功能,实现方法。 z-X+y 代码内容。编译系统将全面检查该函 return Z, 的语法,并为其准备存储空间。 作:徐龙琴 16
C++程序设计课件 设计制作:徐龙琴 16 #include <stdio.h> int add(int, int); void main() { int a, b, sum; scanf(“%d”,&a); scanf(“%d”,&b); sum=add(a, b); //调用 printf(“sum=%d\n”,sum); } int add(int x, int y) { int z; z=x+y; return z; } 原型:说明函数的类型、名称、参数 类型及参数个数,以便编译过程在函 数调用中对照检查。 定义:说明函数的功能,实现方法。有 代码内容。编译系统将全面检查该函数 的语法,并为其准备存储空间
2函数调用过程 当调用一个函数时,整个调用过程分为三步进行: 第一步:是参数传递。 第二步:是函数体执行。 第三步:是返回,即返回到函数调用的位置。 (1)参数传递 参数传递:即实参向形参传递信息,使形参具有确切地含义(即具 有对应的存储空间和初值)。这种传递又分为两种不同 的方式:一种是按值传递, 另一种是地址传递或引用传递 C++程序设计课件设计制作:徐龙琴 17
C++程序设计课件 设计制作:徐龙琴 17 ⒉ 函数调用过程: 当调用一个函数时,整个调用过程分为三步进行: 第一步:是参数传递。 第二步:是函数体执行。 第三步:是返回,即返回到函数调用的位置。 ⑴ 参数传递 参数传递:即实参向形参传递信息,使形参具有确切地含义(即具 有对应的存储空间和初值)。这种传递又分为两种不同 的方式:一种是按值传递, 另一种是地址传递或引用传递
①按值传递 按值传递方式进行参数传递的过程为 首先:计算出实参表达式的值, 接着:给对应的形参变量分配一个存储空间(该空间的大小等于 该形参类型的长度),然后把已求出的实参表达式的值 存入到为形参变量分配的存储空间中,成为形参变量的初值, 供被调用函数执行时使用。 例:按值传递。 include <iostream. h> void swap (int x int y void swap (intr int)i [int t=xi void main o [int a=3,b=4 xyi cout<<"a="<<a<<",b= y=t; j <<<end1; swap(a,b)i 此程序的运行结果为: cout<<"a="<<a<<",b="<<b a=3,b=4 <<endl i a=3,b=4 C++程序设计课件设计制作:徐龙琴 18
C++程序设计课件 设计制作:徐龙琴 18 ①按值传递 按值传递方式进行参数传递的过程为: 首先:计算出实参表达式的值, 接着:给对应的形参变量分配一个存储空间(该空间的大小等于 该形参类型的长度),然后把已求出的实参表达式的值一一 存入到为形参变量分配的存储空间中,成为形参变量的初值, 供被调用函数执行时使用。 #include <iostream.h> void swap(int,int); void main() {int a=3,b=4; cout<<"a="<<a<<",b=“ <<b<<endl; swap(a,b); cout<<"a="<<a<<",b="<<b <<endl; } 例:按值传递。 void swap(int x,int y) {int t=x; x=y; y=t; } 此程序的运行结果为: a=3,b=4 a=3,b=4
例:求两个变量的最大值。 此程序的运行结果为: include <stdio. h> Enter a, b void main() 23,12 i int a, b, c; Max =23 int max (int x, int y) printf(“ Enter a,bn”) scanf(“%d,%‰”,&a,&b); 函数调用 c= max( a, b 一实际参数:是用 printf(“Max=%d”,c);‘,’分开的一组 变量,用来将其值 int max (int x, int y) 传递给形式参数 1nt z 形式参数:是用, z=x>y?x:y;分开的一组变量,用来 return 接收调用时传入的数据 C++程序设计课件设计制作:徐龙琴 19
C++程序设计课件 设计制作:徐龙琴 19 #include <stdio.h> void main( ) { int a,b,c; int max (int x ,int y); printf(“Enter a,b\n”); scanf(“%d,%d”,&a, &b); c = max( a,b ); printf(“Max = %d”, c); } int max (int x ,int y) { int z; z = x > y ? x : y ; return ( z );} 形式参数:是用‘,’ 分开的一组变量,用来 接收调用时传入的数据 函 数 调 用 实际参数:是用 ‘,’分开的一组 变量,用来将其值 传递给形式参数 例:求两个变量的最大值。 此程序的运行结果为: Enter a,b 23,12 Max =23
形式参数和实际参数 ◆形式参数:指定义函数时函数名后面括弧中的变量名, 简称“形参”。 ◆实际参数:调用另一个函数时,函数名后面括弧中的参 数,简称“实参” 实参可以是常量、变量或表达式,但要求它们有确 定的值(若形参为数组名,则传递的是数组的首地 址) ◆未出现函数调用时,形参并不占存储单元。只有在 发生函数调用时,被调函数中的形参才被分配内存 单元。调用结束后,形参所占内存单元被释放 ◆实参与形参的类型应相同 C++程序设计课件设计制作:徐龙琴 20
C++程序设计课件 设计制作:徐龙琴 20 ◆ 形式参数:指定义函数时函数名后面括弧中的变量名, 简称“形参” 。 ◆ 实际参数:调用另一个函数时,函数名后面括弧中的参 数,简称“实参” ◆ 实参可以是常量、变量或表达式,但要求它们有确 定的值(若形参为数组名,则传递的是数组的首地 址) ◆ 未出现函数调用时,形参并不占存储单元。只有在 发生函数调用时,被调函数中的形参才被分配内存 单元。调用结束后,形参所占内存单元被释放 ◆ 实参与形参的类型应相同 形式参数和实际参数: