পয়েন্টার টু স্ট্রাকচার পুরো কাঠামোর যোগ ধারণ করে।
এটি জটিল ডেটা স্ট্রাকচার তৈরি করতে ব্যবহৃত হয় যেমন লিঙ্ক করা তালিকা, গাছ, গ্রাফ ইত্যাদি।
তীর অপারেটর ( ->) নামে একটি বিশেষ অপারেটর ব্যবহার করে কাঠামোর সদস্যদের অ্যাক্সেস করা যেতে পারে।
ঘোষণা
সি প্রোগ্রামিং -
-এ স্ট্রাকচারের পয়েন্টারগুলির জন্য নিম্নোক্ত ঘোষণা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