3空函数的定义形式 令関型说明符函数名( 例:dumm() 令空函数不作任何操作,但是合法,它对调试程 序或以后在此处补充完善函数体是有作用的。 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 3.空函数的定义形式 ❖ 类型说明符 函数名( ) ❖ { } ❖ 例: dummi( ) { } ❖ 空函数不作任何操作,但是合法,它对调试程 序或以后在此处补充完善函数体是有作用的
§8.3函数参数和函数的值 8.3.1形式参数和实际参数 令实际参数:主调函数名后括号内的数据 (常、变量、表达式),有具体的数值 形式参数:被调用函数名后面括号内的变 量名 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 §8.3 函数参数和函数的值 ❖ 8.3.1 形式参数和实际参数 ❖ 实际参数:主调函数名后括号内的数据 (常、变量、表达式),有具体的数值。 ❖ 形式参数:被调用函数名后面括号内的变 量名
例83:求最大值,观察参数的传递 ☆mamn( 6s int a, b,c 冷 scanf%0%d”&a,&b); . c=max(a, b); 实际参数 设输入的值为2 printf(“ max Is%dln,c) 和3 g int max (int x, int y) 形式参数 int z =>y ?X a 2 b3 return (z) x2 y3 上一页下一页返回 第八章函数
上一页 下一页 返回 第八章 函数 例8.3:求最大值,观察参数的传递 ❖ main( ) ❖ { int a, b, c; ❖ scanf(%d%d”,&a, &b); ❖ c=max(a, b); ❖ printf (“max is %d\ n”, c); ❖ } ❖ int max (int x , int y ) ❖ { int z; ❖ z=x>y ? x : y ; ❖ return(z); ❖ } 实际参数 设输入的值为2 和3 形式参数 a 2 b 3 x 2 y 3
说明: 令1.形参在函数调用时被激活,分配存储单元,调 用结束后,释放所分配的单元(即变量消失) 令2实参可以是常量、变量、表达式,要有确定 的值,若是数组名,则传送的是数组的首地址 3.实参、形参的数据类型和传送的顺序要一致。 4实参对形参的数据传送是值传送,而且是单向 传送,当被调函数的形参发生变化时,并不改 变主调函数实参的值 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 说明: ❖ 1.形参在函数调用时被激活,分配存储单元,调 用结束后,释放所分配的单元(即变量消失); ❖ 2.实参可以是常量、变量、表达式,要有确定 的值,若是数组名,则传送的是数组的首地址。 ❖ 3.实参、形参的数据类型和传送的顺序要一致。 ❖ 4.实参对形参的数据传送是值传送,而且是单向 传送,当被调函数的形参发生变化时,并不改 变主调函数实参的值
例84调用函数时参数数据的传递 main 输出: i int a=2, b=3; a=2,b=3 printf((“a=%d,b=%dn”,a,b); printf("&a=%x,&b=%XⅧn”,&a,&b); &a=ffd 4. &b=ffd add(a, b ); x=10,y=15 printf("a=%d,b=%dⅦn”,a,b) printf(“&a=%x,&b=%xn”,&a,s&b); &x-ddfo, &y=ffd add(int x, int y) &a=ffd 4. &b=ffd 8 +12 printf("x=%d, y=%d\n,x, y); printf(&x=%x, &y=%xIn'", &x, &y); 上一页下一页 返回 第八章函数
上一页 下一页 返回 第八章 函数 例8.4 调用函数时参数数据的传递 main( ) { int a=2,b=3; printf (“a=%d, b=%d\ n”,a, b); printf(“&a=%x, &b=%x\n” ,&a,&b); add(a,b); printf(“a=%d, b=%d\n”, a,b); printf(“&a=%x,&b=%x\ n”,&a,&b); } add(int x, int y) { x=x+8; y=y+12; printf(“x=%d,y=%d\ n”,x,y); printf(“&x=%x, &y=%x\n”,&x,&y); } 输出: a=2, b=3 &a=ffd4 , &b=ffd6 x=10 , y=15 &x=ddf0 , &y=ffd2 a=2 , b=3 &a=ffd4 , &b=ffd6