函数定义举例 int max (int x, int y) int z x>Y?x:yi return zi int min (int x, int y) return x<y?x: yi C语言程序设计-第5章函数6
C语言程序设计 - 第5章 函数 6 函数定义举例 int max(int x, int y) { int z; z = x>y?x:y; return z; } int min(int x, int y) { return x<y?x:y; }
函数的调用、参数和返回值 函数的参数 形参和实参 ■参数传递 函数的返回值 函数的调用 函数调用的形式 ■函数的声明和函数原型 函数的嵌套调用和递归调用 C语言程序设计-第5章函数7
C语言程序设计 - 第5章 函数 7 函数的调用、参数和返回值 ⚫ 函数的参数 ◼ 形参和实参 ◼ 参数传递 ⚫ 函数的返回值 ⚫ 函数的调用 ◼ 函数调用的形式 ◼ 函数的声明和函数原型 ◼ 函数的嵌套调用和递归调用
函数的参数( Arguments) 形式参数和实际参数 形参:定义函数时,函数名后()中的参数 ■实参:调用函数时,函数名后()中的参数 实参可以是常量、变量、表达式、函数调用 ■实参和形参必须类型相同或赋值兼容 ●举例 int max(intx,inty)/*函数定义* I return x>y?x: yi H ■max(a,3);/*函数调用*/ C语言程序设计-第5章函数8
C语言程序设计 - 第5章 函数 8 函数的参数 (Arguments) ⚫ 形式参数和实际参数 ◼ 形参:定义函数时,函数名后()中的参数 ◼ 实参:调用函数时,函数名后()中的参数 ◼ 实参可以是常量、变量、表达式、函数调用 ◼ 实参和形参必须类型相同或赋值兼容 ⚫ 举例 ◼ int max(int x, int y)/*函数定义*/ { return x>y?x:y; } ◼ max(a, 3); /*函数调用*/
参数传递 值传递 实参对形参的数据传递是“值传递 单向传递 只能把实参的值传递给形参 ■不能把形参的值传递给实参 ■对形参的值所作的改变不能带回给实参 实参和形参是不同的变量 ■具有不同的存储空间 具有不同的生存期和作用域 C语言程序设计-第5章函数9
C语言程序设计 - 第5章 函数 9 参数传递 ⚫ 值传递 ◼ 实参对形参的数据传递是“值传递” ⚫ 单向传递 ◼ 只能把实参的值传递给形参 ◼ 不能把形参的值传递给实参 ◼ 对形参的值所作的改变不能带回给实参 ⚫ 实参和形参是不同的变量 ◼ 具有不同的存储空间 ◼ 具有不同的生存期和作用域
参数传递举例(05-01.c void swap(int x, int y) Y int t: 七 void main () 1 int a=l, b=4 swap(a, b)i C语言程序设计-第5章函数10
C语言程序设计 - 第5章 函数 10 参数传递举例 (05-01.C) void swap(int x, int y) { int t; t=x, x=y, y=t; } void main() { int a=1, b=4; swap(a, b); } 1 a 4 b 1 x 4 y 4 1