اتصال اشاره گرهای ++C به ساختار — راهنمای کاربردی

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

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

فهرست مطالب این نوشته
997696

متغیر اشاره گر نه تنها برای نوع‌های نیتیو مانند 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

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

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

==

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

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