传值
把实参的值传送给函数局部工作区相应的副本中,函数使用这个副本执行必要的功能。
#include <iostream.h>
//定义swap,交换m和n的值
void swap(float m, float n){
float temp;
temp = m;
m = n;
n = temp;
}
//函数修改的是副本的值,实参的值不变
void main(){
float a = 3, b = 4;
cin >> a >> b;
swap(a, b);
cout << a << endl << b << endl;
}
输出结果:a = 3 ,b = 4。
传址
形参变化影响实参
#include <iostream.h>
//定义swap,交换m和n的值
void swap(float *m, float *n){
float t;
t = *m;
*m = *n;
*n = t;
}
//根本上是通过地址交换了地址上的存储的值
void main(){
float a = 3, b = 4,*p1, *p2;
cin >> a >> b;
p1 = &a;
p2 = &b;
swap(p1, p2);
cout << a << endl << b << endl;
}
输出结果为:a = 4, b = 3。