函数调用 《程序设计》2007.9 #include <iostream.h> 函数原型说明 int max(int a,int b); main() { int x,y; 函数调用 cin>>x>>y; cout <max(x +5,y-3); int max(int a,int b) 函数实现 if (a b)return(a);else return(b); 程序设计-16
《程序设计》 2007.9 程序设计 - 16 #include <iostream.h> int max(int a, int b); main() { int x, y; cin >> x >> y; cout << max(x + 5, y - 3); } int max(int a, int b) { if (a > b) return(a); else return(b); } 函数原型说明 函数调用 函数实现
函数调用 《程序设计》2007.9 #include <iostream.h> 函数实现,无 须函数声明 int max(int a,int b) if (a b)return(a);else return(b); main( 函数调用 { int x,y; cin >x>>y; cout <max(x +5,y-3); 建议用前一种方式!! 程序设计-17
《程序设计》 2007.9 程序设计 - 17 #include <iostream.h> int max(int a, int b) { if (a > b) return(a); else return(b); } main() { int x, y; cin >> x >> y; cout << max(x + 5, y - 3); } 函数调用 函数实现,无 须函数声明 建议用前一种方式!!
函数调用 《程序设计》2007.9 函数调用形式 函数名(实际参数表) eg.max(x,y); 注意: >形式参数和实际参数的个数、排列次序、类型要 完全相同。 >实际参数可以是常量、变量、表达式,甚至是另 一个函数调用 >传递方式:值传递 >值传递:函数获得了主调程序参数变量值的拷贝。 被调程序可以改变这些拷贝,但这对主调程序的 环境没有影响。 程序设计-18
《程序设计》 2007.9 程序设计 - 18 v 函数调用形式 函数名(实际参数表) eg. max( x, y); v 注意: Ø 形式参数和实际参数的个数、排列次序、类型要 完全相同。 Ø 实际参数可以是常量、变量、表达式,甚至是另 一个函数调用 Ø 传递方式:值传递 Ø 值传递:函数获得了主调程序参数变量值的拷贝。 被调程序可以改变这些拷贝,但这对主调程序的 环境没有影响
《程序设计》2007.9 函数调用 调用方式 l.作为语句:printstar(0; 2.作为表达式的一部分 如要计算5!+4!+7! x=p(5)+p(4)+p(7) 3.作为函数的参数 Printstar(p(5)+p(4)+p(7)); 程序设计-19
《程序设计》 2007.9 程序设计 - 19 v 调用方式 1. 作为语句:printstar(); 2. 作为表达式的一部分 如要计算 5!+4!+7! x=p(5) + p(4) + p(7) 3. 作为函数的参数 Printstar( p(5) + p(4) + p(7));
《程序设计》2007.9 函数执行过程 在主程序中计算每个实际参数值 将实际参数赋给对应的形式参数。在赋值的过 程中完成自动类型转换 依次执行函数体的每个语句,直到遇见return语 句或函数体结束 冬计算return后面的表达式的值,如果表达式的值 与函数的返回类型不一致,则完成类型的转换。 ?用函数的返回值置换函数,继续主程序的执行 程序设计-20
《程序设计》 2007.9 程序设计 - 20 v 在主程序中计算每个实际参数值 v 将实际参数赋给对应的形式参数。在赋值的过 程中完成自动类型转换。 v 依次执行函数体的每个语句,直到遇见return语 句或函数体结束 v 计算return后面的表达式的值,如果表达式的值 与函数的返回类型不一致,则完成类型的转换。 v 用函数的返回值置换函数,继续主程序的执行