با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش ++C در خدمت شما دوستان هستیم . در بخش قبلی با آرایه ها و اشاره گر ها در ++C آشنا شدید، در این جلسه قصد داریم به آموزش اشاره گر ها و توابع در ++C و ارسال با مرجع در ++c بپردازیم.
با استفاده از اشاره گر ها می توان آرگومان ها را به روش ارسال با مرجع (Passing by Reference)، به توابع ارسال کرد.
تا قبل از این ما آرگومان ها را به روش ارسال با مقدار به توابع می فرستادیم.
این روش یک کپی از مقدار ارسال شده را در اختیار تابع می گذاشت و هر گونه تغییری بر روی پارامتر در تابع تاثیری روی مقدار اصلی نداشت.
اما در روش ارسال با مرجع، آدرس مقدار به تابع ارسال شده و هر گونه تغییری بر روی پارامتر در تابع بر روی مقدار اصلی تاثیر خواهد داشت.
در مثال زیر از روش ارسال با مرجع بدون اشاره گر ها استفاده کرده ایم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include <iostream> using namespace std; // Function prototype void swap(int&, int&); int main() { int a = 1, b = 2; cout << "Before swapping" << endl; cout << "a = " << a << endl; cout << "b = " << b << endl; swap(a, b); cout << "\nAfter swapping" << endl; cout << "a = " << a << endl; cout << "b = " << b << endl; return 0; } void swap(int& n1, int& n2) { int temp; temp = n1; n1 = n2; n2 = temp; } |
خروجی به شکل زیر می باشد:
1 2 3 4 5 6 7 | Before swapping a = 1 b = 2 After swapping a = 2 b = 1 |
در تابع main دو متغیر a و b تعریف شده اند که به تابع swap به روش ارسال با مرجع فرستاده شده اند.
مثال زیر روش ارسال با مرجع با استفاده از اشاره گر ها را نشان می دهد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <iostream> using namespace std; // Function prototype void swap(int*, int*); int main() { int a = 1, b = 2; cout << "Before swapping" << endl; cout << "a = " << a << endl; cout << "b = " << b << endl; swap(&a, &b); cout << "\nAfter swapping" << endl; cout << "a = " << a << endl; cout << "b = " << b << endl; return 0; } void swap(int* n1, int* n2) { int temp; temp = *n1; *n1 = *n2; *n2 = temp; } |
خروجی مانند خروجی مثال قبل است.
در این مثال ما آدرس دو متغیر a و b را به تابع ارسال کرده ایم.
جلسه اشاره گر ها و توابع در ++C نیز به پایان رسید.
در جلسه بعد به آموزش مدیریت حافظه در ++C خواهیم پرداخت. یا ما همرا باشید.
همچنین می توانید نظرات و سوالات خود را از طریق بخش نظرات سایت با ما در میان بگذارید.