7.3函数参数和函数的值 令函数的参数包括形参和实参,要正确进行函数的调 用,必须确定参数的数量和类型。 令调用函数后得到的值叫做函数的返回值,函数返回 的函数值是函数调用的主要目的之一,返回值的类 型是正确使用函数值的主要依据
❖ 函数的参数包括形参和实参,要正确进行函数的调 用,必须确定参数的数量和类型。 ❖ 调用函数后得到的值叫做函数的返回值,函数返回 的函数值是函数调用的主要目的之一,返回值的类 型是正确使用函数值的主要依据。 7.3 函数参数和函数的值
★形参与实参 心形式参数:定义函数时函数名后面括号中的变量名,形 式参数只能是变量和数组名。 令实际参数:调用函数时函数名后面括号中的表达式。实 际参数可以是常量、变量、数组名、表达式和函数值 说明 实参必须有确定的值 0形参必须指定类型 0形参与实参类型一致,个数相同 若形参与实参类型不一致,自动按形参类型转换—函数 调用转换 形参在函数被调用前不占内存函数调用时为形参分配内存; 调用结束,内存释放
❖说明: ⚫实参必须有确定的值 ⚫形参必须指定类型 ⚫形参与实参类型一致,个数相同 ⚫若形参与实参类型不一致,自动按形参类型转换———函数 调用转换 ⚫形参在函数被调用前不占内存;函数调用时为形参分配内存; 调用结束,内存释放 形参与实参 ❖形式参数:定义函数时函数名后面括号中的变量名,形 式参数只能是变量和数组名。 ❖实际参数:调用函数时函数名后面括号中的表达式,实 际参数可以是常量、变量、数组名、表达式和函数值
★函数的返回值 例无返回值函数 void swap(int x, int y) 今返回值的获得:使用emi语句。{ int temp, ●形式: returnt表达式); temp=X; 或 return表达式 冷返回值的类型:取决于函数的类丬y-temp; ☆ Return语的功能:使程序控制外} 调用函数中,同时把返值带给调用函数。 令说明: 若元retm语句,遇}时,自动返回调用函数,函数返回 个不确定的函数值。 在定义函数时在函数名前加 void(void称为空类型),则不能 返回函数值。 若函数类型与 return语句中表达式值的类型不一致,按前者 为准,自动转换 函数调用转换
❖返回值的获得:使用return语句。 ⚫形式: return(表达式); 或 return 表达式; ❖返回值的类型:取决于函数的类型。 ❖Return语句的功能:使程序控制从被调用函数返回到 调用函数中,同时把返值带给调用函数。 ❖说明: ⚫若无return语句,遇}时,自动返回调用函数,函数返回一 个不确定的函数值。 ⚫在定义函数时在函数名前加void(void称为空类型),则不能 返回函数值。 ⚫若函数类型与return语句中表达式值的类型不一致,按前者 为准,自动转换------函数调用转换 例 无返回值函数 void swap(int x,int y ) { int temp; temp=x; x=y; y=temp; } 函数的返回值
例函数带回不确定值c Cht 3c printstarO void printstarO printf("*****x *** { printf(".*米米米*") ma mal Int a int a a=printstar a=printstarO printf("%od", a printf("%/od", a 输出:10 编译错误
printstar() { printf("**********"); } main() { int a; a=printstar(); printf("%d",a); } 例 函数带回不确定值 输出:10 void printstar() { printf("**********"); } main() { int a; a=printstar(); printf("%d",a); } 编译错误!
例函数返回值类型转换 maino i float a, b C Ch oLc Int c scanf("%f, %f, &a, &b); c=max(a, b) printf("Max is %dn, max(float x, float y i float z return(z)
例 函数返回值类型转换 main() { float a,b; int c; scanf("%f,%f",&a,&b); c=max(a,b); printf("Max is %d\n",c); } max(float x, float y) { float z; z=x>y?x:y; return(z); }