1、阅读程序,分析程序执行结果,再上机编辑、运行该程序,以验证自己的预测。 1) 分析程序执行结果,理解按值传递、按地址传递和按引用传递不同之处 #include<iostream> using namespace std; void swapbyValue(int a,int b) //按值传递 { int t; t=a; a=b; b=t; } void swapbyAddress(int *a,int *b) //按地址传递 { int t; t=*a; *a=*b; *b=t; } void swapbyQuote(int &a,int &b) //按引用传递 { int t; //这里访问与修改的是实际参数本身,而不是实际参数的一个副本 t=a; a=b; b=t; } int main() { int x,y; x=66;y=98; swapbyValue(x,y); cout<<"x="<<x<<" y="<<y<<endl; x=66;y=98; swapbyAddress(&x,&y); cout<<"x="<<x<<" y="<<y<<endl; x=66;y=98; swapbyQuote(x,y); cout<<"x="<<x<<" y="<<y<<endl; return(0); }
时间: 2024-03-31 17:34:33 浏览: 39
sjwtu算法分析与设计 程序执行过程分析 01
该程序定义了三个函数:swapbyValue、swapbyAddress和swapbyQuote,分别用于按值传递、按地址传递和按引用传递两个整型参数,并在主函数中调用这三个函数。主函数中定义了两个整型变量x和y,并依次调用了三个函数对它们进行交换,并输出交换后的结果。
按值传递是指函数调用时,将实际参数的值复制给形式参数,函数在执行时对形式参数进行修改不会影响实际参数的值。按地址传递是指函数调用时,将实际参数的地址复制给形式参数,函数在执行时可以通过修改形式参数所指向的地址来修改实际参数的值。按引用传递是指函数调用时,形式参数是实际参数的一个别名,函数在执行时对形式参数的修改会直接影响实际参数的值。
程序运行结果为:
x=66 y=98
x=98 y=66
x=98 y=66
可以看到,按值传递和按引用传递并没有改变x和y的值,而按地址传递改变了它们的值。这是因为按值传递和按引用传递都是对实参的副本进行操作,而按地址传递则是对实参本身进行操作。
阅读全文