83函数参数和函数的值 、形式参数和实在参数 1.形式参数:在定义函数时写在函数名后面的括号内的变量 2.实在参数:在调用函数时写在函数名后面的括号内的变量 3.说明 (1)程序在编译时不为形参分配存储空间,只有当函数 被调用时,形参被分配存储空间,在调用结束后,形参 所占的空间被释放 (2)实参可以是常量,变量或表达式 (3)实参和形参的类型应相同或赋值相容 (4)实参对形参的数据传递是“值传递”,即单向传递 实参→形参
8.3 函数参数和函数的值 一、形式参数和实在参数 1. 形式参数 : 在定义函数时写在函数名后面的括号内的变量 2. 实在参数 : 在调用函数时写在函数名后面的括号内的变量 3. 说明 (1) 程序在编译时不为形参分配存储空间, 只有当函数 被调用时, 形参被分配存储空间, 在调用结束后, 形参 所占的空间被释放 (2) 实参可以是常量, 变量或表达式 (3) 实参和形参的类型应相同或赋值相容 (4) 实参对形参的数据传递是“值传递” , 即单向传递 实参 → 形参
、函数的返回值 1.函数的返回值通过函数中 return语句获得 return语句的作用:使流程返回主调函数; 将函数值送回到调用表达式中 2.函数类型决定函数返回值的类型 一般函数值的类型和 return语句中表达式的类型应一致 如果二者不一致,则以函数值的类型为准 3.有的函数中没有 return语句,因为它不需要带回值,这时 可以将函数类型定义为void型 void list(void) printf( 6六出出出出出
二、 函数的返回值 1. 函数的返回值通过函数中return语句获得 return语句的作用: 使流程返回主调函数; 将函数值送回到调用表达式中 2. 函数类型决定函数返回值的类型 一般函数值的类型和return语句中表达式的类型应一致 如果二者不一致, 则以函数值的类型为准 3. 有的函数中没有return语句, 因为它不需要带回值, 这时 可以将函数类型定义为 void 型 void list(void) { printf(“******\n”); }
4.一个函数允许有一个或多个 return语句,但每个 return 后的表达式类型要相同;当执行到其中任何一个 return 语句时会立即返回主调函数 int fun(int n if(n>10) return(n); else return(2n);
4. 一个函数允许有一个或多个return语句, 但每个return 后的表达式类型要相同; 当执行到其中任何一个return 语句时会立即返回主调函数 int fun( int n ) { if ( n >10 ) return( n ) ; else return( 2*n ) ; }
84函数的调用 函数调用 1.一般形式:函数名(实参表列); 2.说明 (1)实参表列可以包含多个实参,各个实参之间用逗号分隔 (2)实参与形参的个数应相等,类型一致,顺序要一一对应 (3)调用无参函数时格式为:函数名()注意()不能省略 (4)BC31中按从左至右的顺序对实参求值 3.函数调用的方式 (1)函数语句prin(“heo!”);/标准函数调用*/ (2)函数表达式c=2*max(a,b);体自定义函数调用* (3)函数参数m=max(c,max(a,b))
8.4 函数的调用 一、函数调用 1. 一般形式 : 函数名( 实参表列 ) ; 2. 说明 (1) 实参表列可以包含多个实参, 各个实参之间用逗号分隔 (2) 实参与形参的个数应相等, 类型一致, 顺序要一一对应 (3) 调用无参函数时格式为: 函数名( ) 注意( )不能省略 (4) BC31中按从左至右的顺序对实参求值 3. 函数调用的方式 (1) 函数语句 printf(“hello!”) ; /*标准函数调用*/ (2) 函数表达式 c = 2 * max( a , b ) ; /*自定义函数调用*/ (3) 函数参数 m = max ( c , max ( a , b ) ) ;
4函数调用过程: (1)形参与实参各自占有一个独立的存储空间 (2)形参的存储空间在函数被调用时才分配 (3)函数返回时,形参占据的临时存储区被撤消 特点:函数中对形参变量的操作不会影响到实参 #include <stdio. h> int f(int x, int y) 假设输入为:35 {x=x+2; y=y*2; mai函数 f函数 return( x+y 3 void main O i int a, b, c b 5 scanf(“%d%d”,&a,&b); c=f(a, b)i printf(%odt”,c) 15 printf( ood, /od n", a, b); 运行结果为:15 3.5
4. 函数调用过程: (1) 形参与实参各自占有一个独立的存储空间 (2) 形参的存储空间在函数被调用时才分配 (3) 函数返回时, 形参占据的临时存储区被撤消 特点 : 函数中对形参变量的操作不会影响到实参 #include <stdio.h> int f (int x , int y) { x = x+2 ; y = y*2 ; return( x+y ) ; } void main ( ) { int a , b , c ; scanf(“%d%d” , &a , &b) ; c = f(a , b) ; printf(“%d\t” , c) ; printf(“%d,%d\n”,a,b); } 假设输入为: 3 5 main函数 f 函数 a b c x y 3 5 3 5 5 10 15 运行结果为:15 3 , 5