2014/01/18

C++ Call-By-Value and Call-By-Reference

複習

Call-By-Value
參照到副本值
不可修改
效率慢

Call-By-Reference
參照記憶體位址
可修改
效率快


#include <iostream>
using namespace std;

//Call-By-Value
double price(int number, int money);

//Call-By-Reference
double price2(int& number, int money);

int main()
{
 int money = 0, number = 0;

 cout << "請輸入物品數量:" ;
 cin >> number;
 
 cout << "請輸入價錢:" ;
 cin >> money;
 
 double m_price = price(number, money);

 cout << "總金額:" << m_price << endl 
  << "物品數量"<< number << endl; 

 m_price = price2(number, money);

 cout << "\n\n\n";
 cout << "總金額:" << m_price << endl 
  << "物品數量"<< number << endl; 

 system("pause");
 return 0;
}

double price(int number,int money){
 int sum = 0;
 number*=2;
 sum = number * money;
 return sum;
}

double price2(int& number, int money){
 int sum = 0;
 number*=2;
 sum = number * money;
 return sum;
}




結果: