利用指针实现函数的地址传递
之前在函数部分中,如果使用简单的值传递(如程序cpp1),就会发生虽然函数内部的形参值发生改变,但是显示出来的实参值并没有发生变化。因此,需要使用指针进行地址传递,就可以实现实参的交换(如程序cpp2)
#include<iostream>
using namespace std
;
void swap(int a
, int b
)
{
int temp
;
temp
= a
;
a
= b
;
b
= temp
;
}
#include<iostream>
using namespace std
;
void swap1(int *p1
, int *p2
)
{
int temp
= *p1
;
*p1
= *p2
;
*p2
= temp
}
int main()
{
int a
= 1, b
= 2;
swap(&a
, &b
);
实际上,并没有哪一种传递更好的说法。当想修改实参的值时,就使用地址传递,当不想修改实参的值时,就使用值传递。