#include "stdafx.h"//非 visual studio 請刪除
#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>

int pass_by_value(int parament_value_one_recieve,int parament_value_two_recieve,int parament_value_three_recieve);

int pass_by_pointer(int *parament_pointer_one_recieve,int *parament_pointer_two_recieve,int *parament_pointer_three_recieve);

int pass_by_refernce(int &parament_refernce_one,int &parament_refernce_two,int &parament_refernce_three);


using namespace std;



// this is call by value start ;
int pass_by_value(int parament_value_one_recieve,int parament_value_two_recieve,int parament_value_three_recieve)
{

    int temp;

 if(parament_value_one_recieve > parament_value_two_recieve)
 {
  temp=parament_value_two_recieve;
  parament_value_two_recieve=parament_value_one_recieve;
  parament_value_one_recieve=temp;
 }
 if(parament_value_two_recieve > parament_value_three_recieve)
 {
  temp=parament_value_three_recieve;
  parament_value_three_recieve=parament_value_two_recieve;
  parament_value_two_recieve=temp;
 }
 if(parament_value_one_recieve > parament_value_two_recieve)
 {
  temp=parament_value_two_recieve;
  parament_value_two_recieve=parament_value_one_recieve;
  parament_value_one_recieve=temp;
 }
 
 return parament_value_one_recieve;
 
}
// cal by value end ;



// this is call by pointer start;
int pass_by_pointer(int *parament_pointer_one_recieve,int *parament_pointer_two_recieve,int *parament_pointer_three_recieve)
{

    int temp;

 if(*parament_pointer_one_recieve > *parament_pointer_two_recieve)
 {
  temp=*parament_pointer_two_recieve;
  *parament_pointer_two_recieve=*parament_pointer_one_recieve;
  *parament_pointer_one_recieve=temp;
 }
 if(*parament_pointer_two_recieve > *parament_pointer_three_recieve)
 {
  temp=*parament_pointer_three_recieve;
  *parament_pointer_three_recieve=*parament_pointer_two_recieve;
  *parament_pointer_two_recieve=temp;
 }
 if(*parament_pointer_one_recieve > *parament_pointer_two_recieve)
 {
  temp=*parament_pointer_two_recieve;
  *parament_pointer_two_recieve=*parament_pointer_one_recieve;
  *parament_pointer_one_recieve=temp;
 }
 
 return *parament_pointer_one_recieve;

}
// call by pointer end ;



// this is call by refernce start;
int pass_by_refernce(int &parament_refernce_one_recieve,int &parament_refernce_two_recieve,int &parament_refernce_three_recieve)
{

int temp;

 if(parament_refernce_one_recieve > parament_refernce_two_recieve)
 {
  temp=parament_refernce_two_recieve;
  parament_refernce_two_recieve=parament_refernce_one_recieve;
  parament_refernce_one_recieve=temp;
 }
 if(parament_refernce_two_recieve > parament_refernce_three_recieve)
 {
  temp=parament_refernce_three_recieve;
  parament_refernce_three_recieve=parament_refernce_two_recieve;
  parament_refernce_two_recieve=temp;
 }
 if(parament_refernce_one_recieve > parament_refernce_two_recieve)
 {
  temp=parament_refernce_two_recieve;
  parament_refernce_two_recieve=parament_refernce_one_recieve;
  parament_refernce_one_recieve=temp;
 }
 
 return parament_refernce_one_recieve;

}
//call by refernce end;





int main(int argc,char* argv[])
{
    cout<<"this is call by value"<<endl;

    //call by value int parament_value_one=1,parament_value_two=2,parament_value_three=3;
    int parament_value_one=23,parament_value_two=6,parament_value_three=2;
    cout<<pass_by_value(parament_value_one,parament_value_two,parament_value_three)<<endl;
    
    
    //call by pointer int parament_pointer_one=2,parament_pointer_two=23,parament_pointer_three=6;
    int parament_pointer_one=2,parament_pointer_two=23,parament_pointer_three=6;
    cout<<"this is call by pointer"<<endl;
    cout<<pass_by_pointer(&parament_pointer_one,&parament_pointer_two,&parament_pointer_three)<<endl;


    //call by refernce int parament_refernce_one=6,parament_refernce_thw=2,parament_refernce_three=23;
    int parament_refernce_one=6,parament_refernce_two=2,parament_refernce_three=23;
    cout<<"this is call by refernce"<<endl;
    cout<<pass_by_refernce(parament_refernce_one,parament_refernce_two,parament_refernce_three)<<endl;

    return 0;
}



    全站熱搜

    mitblog 發表在 痞客邦 留言(0) 人氣()