স্ট্রাকচারের পয়েন্টার পুরো স্ট্রাকচারের অ্যাড্রেস ধারণ করে।
এটি লিংকড লিস্ট, ট্রি, গ্রাফ সadrat জটিল ডেটা স্ট্রাকচার তৈরি করতে ব্যবহৃত হয়।
স্ট্রাকচারের মেম্বারগুলিকে অ্যারো অপারেটর (->) নামে একটি বিশেষ অপারেটর ব্যবহার করে অ্যাক্সেস করা যায়।
ঘোষণা
C প্রোগ্রামিং-এ স্ট্রাকচারের পয়েন্টারগুলোর জন্য ঘোষণাটি নিচে দেওয়া হলো −
struct tagname *ptr;
উদাহরণস্বরূপ − struct student *s −
অ্যাক্সেস করা
স্ট্রাকচারের পয়েন্টারগুলিকে কিভাবে অ্যাক্সেস করতে হয় সেটি নিচে ব্যাখ্যা করা হলো।
Ptr->membername;
উদাহরণস্বরূপ − s->sno, s->sname, s->marks;
উদাহরণ প্রোগ্রাম
নিচের প্রোগ্রামটি স্ট্রাকচারের পয়েন্টার ব্যবহারের 모습을 보여준다 −
#includestruct student{ int sno; char sname[30]; float marks; }; main ( ){ struct student s; struct student *st; printf("sno, sname, marks লিখুন: "); scanf("%d%s%f", &s.sno, s.sname, &s.marks); st = &s; printf("ছাত্রের বিবরণ"); printf("Number = %d\n", st->sno); printf("name = %s\n", st->sname); printf("marks =%f\n", st->marks); getch(); }
আউটপুট
উপরোক্ত প্রোগ্রামটি চালালে নিচের ফলাফল পাওয়া যায় −
sno, sname, marks লিখুন: 1 Lucky 98 ছাত্রের বিবরণ: Number = 1 name = Lucky marks = 98.000000
উদাহরণ ২
স্ট্রাকচারের পয়েন্টারের কাজকর্ম ব্যাখ্যা করে আরেকটি উদাহরণ বিবেচনা করুন।
#includestruct person{ int age; float weight; }; int main(){ struct person *personPtr, person1; personPtr = &person1; printf("বয়স লিখুন: "); scanf("%d", &personPtr->age); printf("ওজন লিখুন: "); scanf("%f", &personPtr->weight); printf("প্রদর্শন:\n"); printf("Age: %d\n", personPtr->age); printf("weight: %f", personPtr->weight); return 0; }
আউটপুট
উপরোক্ত প্রোগ্রামটি চালালে নিচের ফলাফল পাওয়া যায় −
বয়স লিখুন: 45 ওজন লিখুন: 60 প্রদর্শন: Age: 45 weight: 60.000000