函数的值传递和引用传递
#include "stdafx.h"
#include
using namespace std;
void swap(int ,int );
int _tmain(int argc, _TCHAR* argv[])
{
cout <<"输入三个整数:"<< endl;
int num1, num2, num3;
cin >> num1 >> num2 >> num3;
if( num1 >= num2 )
swap(num1 , num2);
else if(num2 >= num3)
swap(num2, num3);
else if(num1 >= num2)
swap(num1, num2);
cout << num1 <<"\t"<< num2 <<"\t"<< num3 <<endl;
return 0;
}
void swap( int a, int b)
{
int temp;
temp = a;
a = b;
b = temp;
}
swap函数并没有起到实际作用,因为传入的实参是副本,改变的是副本而不是值本身。
传引用
void swap( int &a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}