close
دانلود فیلم
پلاس

ارسال مقدار به تابع

وقتی مقداری به تابع ارسال می شود یک کپی از محتویات آرگومان به پارامتر نسبت داده می شود یعنی در اصل پارامتر یک کپی از متغیری است که به تابع ارسال می شود و مقدار آن خارج از تابع تغییر نمی کند. این روش ارسال یک متغیر با مقدار (passing variable by value) نامیده می شود. که روش معمول است. روش دیگر ارسال یک متغیر به تابع به صورت مرجع (called by reference) است. در این حالت به جای یک کپی از مقدار متغیر آدرس آن به تابع داده می شود بنابراين نام متغیر و نام پارامتربه یک مکان حافظه ارجاع می کنند. یعنی پارامتر متغیر جدیدی نیست بلکه همان متغیر قبلی با نام جدید است. در این حالت وقتی متغیر درون تابع تغییر می کند متغیر خارج از تابع هم تغییر می کند.

برای تعيين پارامتری به صورت مرجع کافی است علامت & (عملگر آدرس) قبل از پارامتر تابع در اعلان اضافه شود.


مثال. متغير m به صورت مقداری به تابع ارسال شده است. خروجی تابع عدد 1 است.

#include <iostream.h>
void f(int n) {
   n = 4;
}
int main() {
   int m = 1;
   cout << m << "n";
   f(m);
   cout << m << "n";
}

مثال. پارامتر number مرجع است.

#include <iostream.h>
void demo(float &number);
int main () {
   float num1;
   cout << "Please enter a number. n";
   cin >> num1;
   cout << "Before the demo function your number is " << num1 << "n";
   demo(num1);
   cout << "After the demo function your number is still " << num1 << "n";
   return 0;
}
void demo(float &number) {
   number = number * 3;
   cout << "Inside the demo function the number is now " << number << "n";
}

به کانال تلگرام سایت ما بپیوندید