函数调用过程中的机制 #include <iostream> 口当程序执行到 using namespace std; myMaxi函数调用, int myMax(int x,int y) 为main函数分配 int mainO 的内存中包含本 地变量; inta=3,b=4,c-0: 口赋给本地变量的 c=myMax (a,b) 值是初始化的a, cout<<"max="<<c<<endl; main b,c值 return 0; int myMax(int m,int n 3 return (m>n m:n); 周上商克通大¥ 21/72 函数的执行 #include <iostream> 口为了求两数的最大 using namespace std; 值,必须求myMax int myMax(int x,int y); int mainO 函数的值。 口调用函数myMax, inta=3,b=4,c=0; 要为这次调用分配 c=myMax (a,b); 新的内存区域。 cout<<"max="<<c<<endl; main 口新的内存区域有一 return 0; 个包含参数值的 “容器” ,该 a 0 myMax “容器”包含 int myMax (int m, 3 m myMaxi函数内的本 int n) n 地变量。 return (m>n?m:n: 圈上唐夫大学 22/72
21/72 当程序执行到 myMax函数调用, 为main函数分配 的内存中包含本 地变量; 赋给本地变量的 值是初始化的a, b,c值 函数调用过程中的机制 main a 3 b 4 #include <iostream> using namespace std; int myMax(int x, int y); int main() { int a=3,b=4,c=0; c=myMax(a,b); cout<<"max= "<<c<<endl; return 0; } int myMax(int m, int n ) { return (m>n ? m:n); } c 0 22/72 为了求两数的最大 值, 必须求myMax 函数的值。 调用函数myMax, 要为这次调用分配 新的内存区域。 新的内存区域有一 个包含参数值的 “容器” ,该 “容器” 包含 myMax函数内的本 地变量。 函数的执行 main a 3 b 4 myMax m n #include <iostream> using namespace std; int myMax(int x, int y); int main() { int a=3,b=4,c=0; c=myMax(a,b); cout<<"max= "<<c<<endl; return 0; } int myMax(int m, int n ) { return (m>n ? m:n); }
参数传递 一值调用 #include <iostream> using namespace std; 口调用函数的一个重要的 int myMax(int x,int y) 方面是“参数传递” int main( 即进行参数值的复制工 作,或称“亚实结合”。 inta=3,b=4.c=0; 口C+将信息从主调程序 c=myMax (a,b) 传向被调函数的机制的 cout<<"max="<<c<<endl; 名称叫做“值调用”。 return 0; main 口对应的参数值放入函数 新分配内存的“容器” int myMax (int m, a b myMax 中。 int n) 3 4 m n return (m>n?m:n): 4 周上商文通大¥ 23/72 参数传递 值调用 #include <iostream> using namespace std; ▣参数变量m,n就象本 int myMax(int x,int y) 地变量,当函数调用 int mainO 时,自动地被初始化 口函数获得了主调程序 inta=3,b=4,c=0; 参数变量值的拷贝。 c=myMax (a,b) cout<<"max="<<c<<endl; 口被调程序可以改变这 return 0; main 些拷贝,但对主调程 序的环境没有影响。 int myMax(int m, b myMax int n) 3 4 m n return (m>n?m:n): 4 图上海夫通大华 24/72
23/72 调用函数的一个重要的 方面是“参数传递”, 即进行参数值的复制工 作,或称“亚实结合”。 C++将信息从主调程序 传向被调函数的机制的 名称叫做“值调用”。 对应的参数值放入函数 新分配内存的“容器” 中。 参数传递——值调用 main a 3 b 4 myMax m 3 n 4 #include <iostream> using namespace std; int myMax(int x, int y); int main() { int a=3,b=4,c=0; c=myMax(a,b); cout<<"max= "<<c<<endl; return 0; } int myMax(int m, int n ) { return (m>n ? m:n); } 24/72 参数变量m,n就象本 地变量,当函数调用 时,自动地被初始化 函数获得了主调程序 参数变量值的拷贝。 被调程序可以改变这 些拷贝,但对主调程 序的环境没有影响。 参数传递——值调用 main a 3 b 4 myMax m 3 n 4 #include <iostream> using namespace std; int myMax(int x, int y); int main() { int a=3,b=4,c=0; c=myMax(a,b); cout<<"max= "<<c<<endl; return 0; } int myMax(int m, int n ) { return (m>n ? m:n); }