1.值传递 值传递,它传递的是实际参数的一个副本。
#include <stdio.h>
int main()
{
int a=1,b=2;
printf("调用前a=%d,b=%d\n",a,b);
swap1(a,b);
printf("调用后a=%d,b=%d\n",a,b);
return 0;
}
void swap1(int x, int y){
int temp;
temp=x;
x=y;
y=temp;
return;
}
运行结果如下:
调用前a=1,b=2
调用后a=1,b=2
2.引用传递 引用传递时,对形参的操作等同于对实参的操作。 注:这是C++才有的机制。
#include <iostream>
using namespace std;
int main()
{
int a = 1, b = 2;
cout << "调用前"<< "a = " << a <<",b =" << b << endl;
int &ra = a;
int &rb = b;
swap(ra, rb);
cout << "调用后"<< "a = " << a <<",b =" << b << endl;
return 0;
}
void swap2(int &x, int &y){
int temp;
temp=x;
x=y;
y=temp;
return;
}
运行结果如下:
调用前a = 1,b =2
调用后a = 2,b =1
3.指针传递
#include <stdio.h>
int main()
{
int a=1,b=2;
printf("调用前a=%d,b=%d\n",a,b);
swap3(&a,&b);
printf("调用后a=%d,b=%d\n",a,b);
return 0;
}
void swap3(int *x, int *y){
int temp;
temp = *x;
*x = *y;
*y = temp;
return;
}
运行结果如下:
调用前a=1,b=2
调用后a=2,b=1
|