ارجاع زدایی (Dereferencing)
اینجا درباره ارجاع زدایی (Dereferencing) حرف می زنیم. ارجاع زدایی یعنی از روی اشاره گر، مقدار واقعی متغیر را بگیریم. مثل داشتن آدرس خانه و دیدن ساکن داخل خانه.
ارجاع زدایی: گرفتن مقدار با *
قبلاً آدرس حافظه را با & می گرفتیم. اما حالا با * می توانیم مقدار همان آدرس را بخوانیم.
string food = "Pizza";
string* ptr = &food;
cout << ptr << "\n";
cout << *ptr << "\n";
نکته: * روی اعلان، یعنی «نوع اشاره گر». اما بیرون از اعلان، یعنی «ارجاع زدایی و دسترسی به مقدار».
* در دو نقش متفاوت
string* ptr: ساخت متغیر اشاره گر.*ptr: گرفتن مقدارِ آدرس داخل اشاره گر.
نمونه کوتاهِ اعلان و ارجاع زدایی
این تکه فقط نقش ها را نشان می دهد.
string food = "Pizza";
string* p = &food;
cout << *p << "\n";
گام های عملی ارجاع زدایی
- یک متغیر معمولی بساز.
- یک اشاره گر همنوع بساز و آدرس را بده.
- با * روی اشاره گر، مقدار را چاپ کن.
هشدار: نوع اشاره گر باید با نوع متغیر یکی باشد. وگرنه رفتار نادرست می بینی.
جمع بندی سریع
- ارجاع زدایی یعنی خواندن مقدار از آدرس.
- & آدرس می دهد؛ * مقدارِ آن آدرس را می دهد.
- * در اعلان، نوع اشاره گر را مشخص می کند.
- نوع ها باید دقیقاً یکسان باشند.
برای پایه ها، صفحه آدرس حافظه را ببین. برای اشاره گرها، صفحه اشاره گرها را بخوان. همچنین لینک داخلی با کلمه کلیدی: ارجاع زدایی.