形式参数和实际参数 ●值传递说明: ●在内存中,实参与形参存放在在不同的内存区域。在 调用函数时,系统给形参分配存储单元,并将实参对 应的值拷贝给形参,调用结束后,形参单元被释放, 而在函数调用过程中,实参值没有任何改动。因此, 在执行一个被调用函数时,形参的值如果发生改变, 并不会改变主调函数的实参的值。 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 形式参数和实际参数 ⚫ 值传递说明: ⚫ 在内存中,实参与形参存放在在不同的内存区域。在 调用函数时,系统给形参分配存储单元,并将实参对 应的值拷贝给形参,调用结束后,形参单元被释放, 而在函数调用过程中,实参值没有任何改动。因此, 在执行一个被调用函数时,形参的值如果发生改变, 并不会改变主调函数的实参的值
形式参数和实际参数 注意: 定义函数时,必须说明形参的类型,形参只 能是变量(简单、构造类型),而不能是常 形参只有在函数内部有效(函数调用结束返 回主调函数后则不能再使用该形参变量) 在函数调用前,形参不占内存; 形参变量只有在函数被调用时才分配内存单元; 3.在调用结束时,刻释放所分配的内存单元 实参可以是常量、变量、表达式、函数 实参和形参在数量,类型,顺序上应严格 致,否则会发生“类型不匹配”的错误 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 形式参数和实际参数 ⚫ 注意: ⚫ 定义函数时,必须说明形参的类型,形参只 能是变量(简单、构造类型),而不能是常 量 ⚫ 形参只有在函数内部有效(函数调用结束返 回主调函数后则不能再使用该形参变量): 1. 在函数调用前,形参不占内存; 2. 形参变量只有在函数被调用时才分配内存单元; 3. 在调用结束时,刻释放所分配的内存单元 ⚫ 实参可以是常量、变量、表达式、函数 ⚫ 实参和形参在数量,类型,顺序上应严格一 致,否则会发生“类型不匹配”的错误
形式参数和实际参数 ●例:读程序,求程序的输出 include "stdio. h int sum (int b, int a) +b; b a bi return ai ain () nt a= 1, b c= sum(a, b)i printf("sum d\n",c) 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 形式参数和实际参数 ⚫ 例:读程序,求程序的输出 #include "stdio.h" int sum(int b, int a) { a = a + b; b = a + b; return a; } main() { int a = 1, b = 2, c; c = sum(a, b); printf("sum = %d\n",c); }
函数的返回值 函数的值就是函数的返回值,是指被调涵数返回 给主调函数值。函数的值是一个确定的值。 返回函数值的方法 函数的值只能通过reun语句向主调函数返值 ●一个函数可以有多个 return语句,但不论执行到哪个 return,都将结束函数的调用,返回主函数 ● return语句格式: return表达式;或者: return(表达式) 例 int max(int x, int y) int max(int x, int y) if (x>y) return xi return (x>y?x: y); return yi 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 函数的返回值 ⚫ 函数的值就是函数的返回值,是指被调函数返回 给主调函数值。函数的值是一个确定的值。 ⚫ 返回函数值的方法 ⚫ 函数的值只能通过return语句向主调函数返值 ⚫ 一个函数可以有多个return语句,但不论执行到哪个 return,都将结束函数的调用,返回主函数 ⚫ return 语句格式: return 表达式;或者:return (表达式); ⚫ 例:int max(int x, int y) { if (x>y) return x; return y; } int max(int x, int y) { return (x>y?x:y); }
max(int x, int y) 函数的返回值 int z x>Y return()i ●函数的类型即是函数返回值的类型 ●函数的类型和函数定义中函数返回值的类型应保 持一致。如果两者不一致,则以函数类型为准, 自动进行类型转换。 ●在函数定义时如果省去类型说明,则函数的类型默认 为整型(int) ●不需要返回值的函数 如果一个函数不需要返回值,可以将函数类型设为void ●∨od类型不能被引用 电子科技大学通信与信息工程学院
电子科技大学通信与信息工程学院 函数的返回值 ⚫ 函数的类型即是函数返回值的类型 ⚫ 函数的类型和函数定义中函数返回值的类型应保 持一致。如果两者不一致,则以函数类型为准, 自动进行类型转换。 ⚫ 在函数定义时如果省去类型说明,则函数的类型默认 为整型(int) ⚫ 不需要返回值的函数 ⚫ 如果一个函数不需要返回值,可以将函数类型设为void ⚫ Void类型不能被引用 int max(int x, int y) { int z; z = x>y ? x : y; return(z); }