পয়েন্টার টু স্ট্রাকচার এক্সেস
স্ট্রাকচার পয়েন্টারের মাধ্যমে মেম্বার এক্সেস করার জন্য অ্যারো অপারেটর (->) ব্যবহার করা হয়। এটি (*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)হিসেবে রিসিভ করুন।