পয়েন্টার টু স্ট্রাকচার পুরো কাঠামোর যোগ ধারণ করে।
এটি জটিল ডেটা স্ট্রাকচার তৈরি করতে ব্যবহৃত হয় যেমন লিঙ্ক করা তালিকা, গাছ, গ্রাফ ইত্যাদি।
তীর অপারেটর ( ->) নামে একটি বিশেষ অপারেটর ব্যবহার করে কাঠামোর সদস্যদের অ্যাক্সেস করা যেতে পারে।
ঘোষণা
সি প্রোগ্রামিং -
-এ স্ট্রাকচারের পয়েন্টারগুলির জন্য নিম্নোক্ত ঘোষণাstruct tagname *ptr;
যেমন − struct student *s −
অ্যাক্সেস করা হচ্ছে
এটি নীচে ব্যাখ্যা করা হয়েছে কিভাবে স্ট্রাকচারে পয়েন্টার অ্যাক্সেস করতে হয়।
Ptr-> membername;
যেমন − s->sno, s->sname, s->চিহ্ন;
উদাহরণ প্রোগ্রাম
নিম্নলিখিত প্রোগ্রামটি কাঠামোর জন্য নির্দেশকের ব্যবহার দেখায় −
#include<stdio.h> struct student{ int sno; char sname[30]; float marks; }; 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 ("details of the student are"); printf ("Number = %d\n", st ->sno); printf ("name = %s\n", st->sname); printf ("marks =%f\n", st ->marks); getch ( ); }
আউটপুট
আসুন আমরা উপরের প্রোগ্রামটি চালাই যা নিম্নলিখিত ফলাফল তৈরি করবে -
enter sno, sname, marks:1 Lucky 98 details of the student are: Number = 1 name = Lucky marks =98.000000
উদাহরণ 2
আরেকটি উদাহরণ বিবেচনা করুন যা কাঠামোতে পয়েন্টারগুলির কার্যকারিতা ব্যাখ্যা করে।
#include<stdio.h> struct person{ int age; float weight; }; int main(){ struct person *personPtr, person1; personPtr = &person1; printf("Enter age: "); scanf("%d", &personPtr->age); printf("Enter weight: "); scanf("%f", &personPtr->weight); printf("Displaying:\n"); printf("Age: %d\n", personPtr->age); printf("weight: %f", personPtr->weight); return 0; }
আউটপুট
আসুন আমরা উপরের প্রোগ্রামটি চালাই যা নিম্নলিখিত ফলাফল তৈরি করবে -
Enter age: 45 Enter weight: 60 Displaying: Age: 45 weight: 60.000000