اتصال اشاره گرهای ++C به ساختار — راهنمای کاربردی
در این مقاله به بررسی روش اتصال اشاره گرهای ++C به ساختار میپردازیم. در این مسیر مثالهایی مورد بررسی قرار گرفتهاند که به درک کارکرد اشاره گرها برای دسترسی به دادههای درون یک ساختار در ++C کمک میکنند. برای مطالعه بخش قبلی این سری مقالات روی لینک زیر کلیک کنید:
متغیر اشاره گر نه تنها برای نوعهای نیتیو مانند int ،float ،double و غیره قابل ساختن است، بلکه میتواند برای انواع تعریفشده از سوی کاربر مانند structure نیز ایجاد شود. شیوه ساخت اشارهگر برای یک ساختار به صورت زیر است:
1#include <iostream>
2using namespace std;
3struct temp {
4 int i;
5 float f;
6};
7int main() {
8 temp *ptr;
9 return 0;
10}
این برنامه یک اشارهگر به نام ptr و از نوع ساختار temp ایجاد میکند.
مثال: اشارهگر به ساختار
1#include <iostream>
2using namespace std;
3struct Distance
4{
5 int feet;
6 float inch;
7};
8int main()
9{
10 Distance *ptr, d;
11 ptr = &d;
12
13 cout << "Enter feet: ";
14 cin >> (*ptr).feet;
15 cout << "Enter inch: ";
16 cin >> (*ptr).inch;
17
18 cout << "Displaying information." << endl;
19 cout << "Distance = " << (*ptr).feet << " feet " << (*ptr).inch << " inches";
20 return 0;
21}
خروجی
Enter feet: 4 Enter inch: 3.5 Displaying information. Distance = 4 feet 3.5 inches
در این برنامه یک متغیر اشارهگر به نام ptr و متغیر معمولی d از نوع ساختار Distance تعریف شده است.
آدرس متغیر d در متغیر اشاره گر ذخیره میشود، یعنی ptr به متغیر d اشاره میکند. سپس تابع عضو متغیر d با استفاده از اشاره گر مورد دسترسی قرار میگیرد.
نکته: از آنجا که اشارهگر ptr در این برنامه به متغیر d اشاره میکند، (ptr*).inch و d.inch دقیقاً سلولهای یکسانی از حافظه هستند. به طور مشابه (ptr*).feet و d.feet در مکان مشابهی از حافظه قرار دارند.
ساختار دسترسی به تابع عضو با استفاده از اشارهگر زشت است و یک نمادگذاری جایگزین به صورت -> وجود دارد که رایجتر است.
ptr->feet is same as (*ptr).feet ptr->inch is same as (*ptr).inch
به این ترتیب به پایان این مقاله میرسیم. برای مطالعه بخش بعدی روی لینک زیر کلیک کنید:
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی
- آموزش برنامهنویسی C++
- مجموعه آموزشهای دروس علوم و مهندسی کامپیوتر
- ساختارهای ++C — راهنمای جامع
- ارسال ساختار به تابع در ++C — راهنمای جامع
==