কম্পিউটার টিউটোরিয়াল

সি ভাষায় পয়েন্টার টু স্ট্রাকচার এক্সেস করার পদ্ধতি

পয়েন্টার টু স্ট্রাকচার এক্সেস

স্ট্রাকচার পয়েন্টারের মাধ্যমে মেম্বার এক্সেস করার জন্য অ্যারো অপারেটর (->) ব্যবহার করা হয়। এটি (*ptr).member এর শর্টহ্যান্ড।

ঘোষণা ও ইніশিয়ালাইজেশন

struct tagname *ptr;
ptr = &structure_variable;

এक्सেস সিনট্যাক্স

ptr->member_name;

উদাহরণ ১: অ্যারে ভিত্তিক স্ট্রাকচারে পয়েন্টার

#include <stdio.h>

struct classroom {
    int students[7];
};

int main() {
    struct classroom clr = {2, 3, 5, 7, 11, 13, 17};
    int *ptr;
    ptr = (int *)&clr; // ক্লাসরুমের প্রথম মেম্বারের ঠিকানা

    printf("Value at ptr+4 = %d\n", *(ptr + 4)); // 11 প্রিন্ট করবে
    return 0;
}

ব্যাখ্যা

ptr ক্লাসরুম অবজেক্টের প্রথম ইলিমেন্ট (2) এর ঠিকানা ধারণ করে। ptr+4 মানে ৪টি ইন্টেজার এগিয়ে যাওয়া → ১১।

উদাহরণ ২: স্ট্যান্ডার্ড স্ট্রাকচার পয়েন্টার

#include <stdio.h>

struct student {
    int sno;
    char sname[30];
    float marks;
};

int main() {
    struct student s;
    struct student *st;

    printf("Enter sno, sname, marks: ");
    scanf("%d %s %f", &s.sno, s.sname, &s.marks);

    st = &s;

    printf("\nDetails:\n");
    printf("Number = %d\n", st->sno);
    printf("Name   = %s\n", st->sname);
    printf("Marks  = %.2f\n", st->marks);

    return 0;
}

আউটপুট

Enter sno, sname, marks: 1 bhanu 69

Details:
Number = 1
Name   = bhanu
Marks  = 69.00

সারসংক্ষেপ

  • st = &s → পয়েন্টারকে স্ট্রাকচারের ঠিকানা দিন।
  • st->sno → (*st).sno এর সমতুল্য।
  • ফাংশনে পাস করলে void func(struct student *ptr) হিসেবে রিসিভ করুন।
  1. উইন্ডোজ ১০-এ সিস্টেম ভাষা পরিবর্তন করার উপায়

  2. Windows 10-এ সিস্টেম ল্যাঙ্গুয়েজ পরিবর্তন করুন — রি-ইনস্টল ছাড়া

  3. উইন্ডোজ ১১-এ সিস্টেম ল্যাঙ্গুয়েজ পরিবর্তন করার ধাপে ধাপে গাইড

  4. উইন্ডোজ ৭-এ ডিসপ্লে ল্যাঙ্গুয়েজ পরিবর্তন: ধাপে ধাপে গাইড