交换函数的两种不同的实现方式------地址传递和引用参数

//________________________________

//用地址传递的方式来实现两个数的交换

//________________________________

#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;

}

注:引用是它所引用的常量或变量的一个别名,它们实际上是同一回事。同样,当函数的形式参数是引用类型时,它实际上是对实在参数所代表的变量或常量的引用,它自己不具有独立的内存空间。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值