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