ش | ی | د | س | چ | پ | ج |
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 | 29 | 30 |
زبان برنامهنویسی C از دو نوع متغیر پشتیبانی میکند: متغیرهای معمولی و اشارهگرها (متغیرهای حاوی آدرس حافظه). زبان ++C نوع سومی را به این مجموعه اضافه کرده است: متغیرهای مرجع (Reference).
متغیرهای مرجع از روی دو نوع دیگر ساخته میشود و به نوعی میتوان گفت نام مستعار برای متغیر اصلی به حساب میآید. برای تعریف متغیر مرجع از عملگر & استفاده میکنیم:
1 | int a; |
2 | int &b = a; |
عبارت فوق متغیر b را مرجعی برای a معرفی میکند. از این کد به بعد متغیرهای a و b معادل هم هستند. یعنی تغییرات a در b و تغییرات b در aتاثیر میگذارد. در واقع a و b از یک محل حافظه استفاده میکنند؛ یا اینکه یک خانهی حافظه، دو نام متفاوت دارد.
کاربرد اصلی متغیرهای مرجع را میتوان در انتقال اطلاعات به توابع و بالعکس دید. همانطور که میدانید در زبان C دو روش برای انتقال اطلاعات به تابع و بالعکس وجود دارد: مقدار و اشارهگر. زمانی که از روش اول استفاده میکنیم، آرگومان متناظر با پارامتر تابع فقط یک کپی از مقدار آن پارامتر را دارد. یعنی تغییر متغیر آرگومان تاثیری در متغیر پارامتر ندارد.
منبع الگوریتم ها
متغییرهای مرجع در سه جا به درد میخورند
1- هنگامی که داده های برگشتی ما بیشتر از یکی باشد
2- برای تغییر پارامتر اصلی
3- برای ذخیره کمتر حافظ و زمان