#include <iostream>
using namespace std;
// --- Call by Value ---
int sumByValue( int a, int b) {
return a + b; // works on copies of a and b
}
// --- Call by Address (using pointers) ---
void swapByAddress( int * x, int * y) {
int temp = * x;
* x = * y;
* y = temp;
}
// --- Call by Reference ---
void applyMultiplier( int & balance1, int & balance2, int multiplier) {
balance1 * = multiplier;
balance2 * = multiplier;
}
int main( ) {
int amount1, amount2;
cout << "Enter two amounts: " ;
cin >> amount1 >> amount2;
// Call by Value
int sum = sumByValue( amount1, amount2) ;
cout << "\n [Call by Value] Sum of amounts = " << sum << endl;
// Call by Address
cout << "\n [Call by Address] Before swap: amount1 = " << amount1 << ", amount2 = " << amount2 << endl;
swapByAddress( & amount1, & amount2) ;
cout << "After swap: amount1 = " << amount1 << ", amount2 = " << amount2 << endl;
// Call by Reference
int multiplier;
cout << "\n Enter multiplier to apply: " ;
cin >> multiplier;
applyMultiplier( amount1, amount2, multiplier) ;
cout << "[Call by Reference] After applying multiplier: amount1 = " << amount1 << ", amount2 = " << amount2 << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKLy8gLS0tIENhbGwgYnkgVmFsdWUgLS0tCmludCBzdW1CeVZhbHVlKGludCBhLCBpbnQgYikgewogICAgcmV0dXJuIGEgKyBiOyAvLyB3b3JrcyBvbiBjb3BpZXMgb2YgYSBhbmQgYgp9CgovLyAtLS0gQ2FsbCBieSBBZGRyZXNzICh1c2luZyBwb2ludGVycykgLS0tCnZvaWQgc3dhcEJ5QWRkcmVzcyhpbnQgKngsIGludCAqeSkgewogICAgaW50IHRlbXAgPSAqeDsKICAgICp4ID0gKnk7CiAgICAqeSA9IHRlbXA7Cn0KCi8vIC0tLSBDYWxsIGJ5IFJlZmVyZW5jZSAtLS0Kdm9pZCBhcHBseU11bHRpcGxpZXIoaW50ICZiYWxhbmNlMSwgaW50ICZiYWxhbmNlMiwgaW50IG11bHRpcGxpZXIpIHsKICAgIGJhbGFuY2UxICo9IG11bHRpcGxpZXI7CiAgICBiYWxhbmNlMiAqPSBtdWx0aXBsaWVyOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBhbW91bnQxLCBhbW91bnQyOwogICAgY291dCA8PCAiRW50ZXIgdHdvIGFtb3VudHM6ICI7CiAgICBjaW4gPj4gYW1vdW50MSA+PiBhbW91bnQyOwoKICAgIC8vIENhbGwgYnkgVmFsdWUKICAgIGludCBzdW0gPSBzdW1CeVZhbHVlKGFtb3VudDEsIGFtb3VudDIpOwogICAgY291dCA8PCAiXG5bQ2FsbCBieSBWYWx1ZV0gU3VtIG9mIGFtb3VudHMgPSAiIDw8IHN1bSA8PCBlbmRsOwoKICAgIC8vIENhbGwgYnkgQWRkcmVzcwogICAgY291dCA8PCAiXG5bQ2FsbCBieSBBZGRyZXNzXSBCZWZvcmUgc3dhcDogYW1vdW50MSA9ICIgPDwgYW1vdW50MSA8PCAiLCBhbW91bnQyID0gIiA8PCBhbW91bnQyIDw8IGVuZGw7CiAgICBzd2FwQnlBZGRyZXNzKCZhbW91bnQxLCAmYW1vdW50Mik7CiAgICBjb3V0IDw8ICJBZnRlciBzd2FwOiBhbW91bnQxID0gIiA8PCBhbW91bnQxIDw8ICIsIGFtb3VudDIgPSAiIDw8IGFtb3VudDIgPDwgZW5kbDsKCiAgICAvLyBDYWxsIGJ5IFJlZmVyZW5jZQogICAgaW50IG11bHRpcGxpZXI7CiAgICBjb3V0IDw8ICJcbkVudGVyIG11bHRpcGxpZXIgdG8gYXBwbHk6ICI7CiAgICBjaW4gPj4gbXVsdGlwbGllcjsKICAgIGFwcGx5TXVsdGlwbGllcihhbW91bnQxLCBhbW91bnQyLCBtdWx0aXBsaWVyKTsKICAgIGNvdXQgPDwgIltDYWxsIGJ5IFJlZmVyZW5jZV0gQWZ0ZXIgYXBwbHlpbmcgbXVsdGlwbGllcjogYW1vdW50MSA9ICIgPDwgYW1vdW50MSA8PCAiLCBhbW91bnQyID0gIiA8PCBhbW91bnQyIDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0=