مقدار بازگشتی با ارجاع در ++C — راهنمای کاربردی

۱۵۲۴ بازدید
آخرین به‌روزرسانی: ۵ مهر ۱۴۰۲
زمان مطالعه: ۱ دقیقه
دانلود PDF مقاله
مقدار بازگشتی با ارجاع در ++C — راهنمای کاربردیمقدار بازگشتی با ارجاع در ++C — راهنمای کاربردی

در زبان برنامه‌نویسی ++C نه‌ تنها می‌توان مقادیر را با ارجاع به یک تابع ارسال کرد، بلکه می‌توان مقدار بازگشتی با ارجاع را نیز به دست آورد. برای درک این قابلیت، باید در مورد متغیرهای سراسری با در مورد متغیرهای سراسری که در مطالب قبلی معرفی کردیم آشنایی داشته باشید. برای مطالعه قسمت قبلی این مجموعه مطلب آموزشی می‌توانید روی لینک زیر کلیک کنید:

997696

مثال

بازگشتی با ارجاع

1#include <iostream>
2using namespace std;
3// Global variable
4int num;
5// Function declaration
6int& test();
7int main()
8{
9    test() = 5;
10    cout << num;
11    return 0;
12}
13int& test()
14{
15    return num;
16}

خروجی

5

در برنامه فوق، نوع بازگشتی تابع ()test به صورت &int است. از این رو این تابع یک ارجاع از متغیر num بازگشت می‌دهد.

گزاره بازگشتی تابع به صورت زیر است:

return num;

برخلاف بازگشتیِ با مقدار، این گزاره مقدار متغیر num را بازگشت نمی‌دهد، بلکه خود متغیر یعنی آدرس آن را بازگشت می‌دهد. از این رو زمانی که متغیر بازگشت یابد، می‌توان آن را به یک مقدار مثلاً به صورت زیر انتساب داد:

test() = 5;

بدین ترتیب مقدار 5 در متغیر num ذخیره می‌شود که روی صفحه نمایش پیدا می‌کند.

نکات مهمی که هنگام استفاده از بازگشت با ارجاع باید به خاطر داشت

تابع معمولی مقدار بازگشت می‌دهد، اما این تابع چنین نیست. از این رو نمی‌توان یک ثابت را از تابع بازگشت داد:

1int& test() {
2    return 2;
3}

نمی‌توان یک متغیر محلی را از این تابع بازگشت داد:

1int& test()
2{
3    int n = 2; 
4    return n; 
5}

بدین ترتیب به پایان این بخش از سری مقالات راهنمای جامع ++C می‌رسیم. برای مطالعه بخش بعدی روی لینک زیر کلیک کنید:

اگر این مطلب برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

==

بر اساس رای ۵ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
programiz
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *