交换函数的两种不同的实现方式------地址传递和引用参数
2012-02-20 14:45
274 查看
//________________________________
//用地址传递的方式来实现两个数的交换
//________________________________
#include <iostream.h>
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void main()
{
int val1 = 10, val2 = 20;
cout << "Before swap, val1 =" << val1 << " " << "val2 =" << val2 << endl;
swap(&val1,&val2);
cout << "After swap, val1 =" << val1 << " " << "val2 =" << val2 <<endl;
}
注:指针作为函数参数,提供了一种可以间接修改调用该函数参数值的手段。
//________________________________
//用引用参数的方式来实现两个数的交换
//________________________________
#include <iostream.h>
void swap(int &a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
void main()
{
int val1 = 10, val2 = 20;
cout << "Before swap, val1 =" << val1 << " " << "val2 =" << val2 << endl;
swap(val1,val2);
cout << "After swap, val1 =" << val1 << " " << "val2 =" << val2 <<endl;
}
注:引用是它所引用的常量或变量的一个别名,它们实际上是同一回事。同样,当函数的形式参数是引用类型时,它实际上是对实在参数所代表的变量或常量的引用,它自己不具有独立的内存空间。
//用地址传递的方式来实现两个数的交换
//________________________________
#include <iostream.h>
void swap(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void main()
{
int val1 = 10, val2 = 20;
cout << "Before swap, val1 =" << val1 << " " << "val2 =" << val2 << endl;
swap(&val1,&val2);
cout << "After swap, val1 =" << val1 << " " << "val2 =" << val2 <<endl;
}
注:指针作为函数参数,提供了一种可以间接修改调用该函数参数值的手段。
//________________________________
//用引用参数的方式来实现两个数的交换
//________________________________
#include <iostream.h>
void swap(int &a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
void main()
{
int val1 = 10, val2 = 20;
cout << "Before swap, val1 =" << val1 << " " << "val2 =" << val2 << endl;
swap(val1,val2);
cout << "After swap, val1 =" << val1 << " " << "val2 =" << val2 <<endl;
}
注:引用是它所引用的常量或变量的一个别名,它们实际上是同一回事。同样,当函数的形式参数是引用类型时,它实际上是对实在参数所代表的变量或常量的引用,它自己不具有独立的内存空间。
相关文章推荐
- 交换函数的两种不同的实现方式------地址传递和引用参数
- 交换函数的两种不同的实现方式------地址传递和引用参数
- 函数调用时基本的参数传递方式有传值与传地址两种
- 第二周 项目一 C/C++语言中函数参数传递的三种方式(二):地址传递
- linux网络编程之一般应用采用的协议和不同套接字的地址结构以及用户进程和内核通过哪些函数传递套接字的地址结构
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- C++ 给函数传递参数的两种方式
- 【笔试题】不同页面之间实现参数传递的几种方式
- 交换两个变量的不同实现方式
- Delphi 函数传递参数的不同方式
- 《Spark商业案例与性能调优实战100课》第9课:商业案例之通过Spark SQL 下两种不同方式实现口碑最佳和最热门电影比较
- python实现高速排序算法(两种不同实现方式)
- 数组的函数传递的两种方式(数组名和指针)
- JavaScript实现二级、多级(N级)联动下拉列表框更新版,支持IE6,FireFox,函数和类两种调用方式,支持到N级,非常通用。
- 每日一题_JavaScript.两种方式实现网页加载后onload绑定多个函数?
- JQuery的read函数与js的onload不同方式实现
- 实现axis2两种不同方式的客户端
- 第二周实践项目1-C++语言中函数参数传递的三种方式(传地址)
- C/C++中参数传递有两种方式,传值或传地址(传引用)