函数的值传递和引用传递

#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;
 }
posted @ 2012-09-11 15:10  ClaireJY  阅读(142)  评论(0编辑  收藏  举报