পয়েন্টার হল একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা সংরক্ষণ করে।
বৈশিষ্ট্যসমূহ
- পয়েন্টার মেমরির স্থান সংরক্ষণ করে।
- মমরি অবস্থানে সরাসরি অ্যাক্সেসের কারণে পয়েন্টার কার্যকর করার সময় দ্রুত।
- পয়েন্টারের সাহায্যে, মেমরিটি দক্ষতার সাথে অ্যাক্সেস করা হয়, অর্থাৎ, মেমরি বরাদ্দ করা হয় এবং গতিশীলভাবে ডিললোকেট করা হয়।
- ডাটা স্ট্রাকচারের সাথে পয়েন্টার ব্যবহার করা হয়।
পয়েন্টার ঘোষণা এবং সূচনা
নিম্নলিখিত বিবৃতিটি বিবেচনা করুন -
int qty = 179;
মেমরিতে, ভেরিয়েবলকে নিম্নরূপ উপস্থাপন করা যেতে পারে −
পয়েন্টার ঘোষণা করা হচ্ছে
এর মানে 'p' হল একটি পয়েন্টার ভেরিয়েবল, যা অন্য পূর্ণসংখ্যা ভেরিয়েবলের ঠিকানা ধারণ করে, যেমনটি নীচে দেখানো হয়েছে −
Int *p;
পয়েন্টারের সূচনা
ঠিকানা অপারেটর (&) একটি পয়েন্টার ভেরিয়েবল শুরু করতে ব্যবহৃত হয়।
উদাহরণ − int qty =175;
int *p;
p=&qty;
পয়েন্টারের অ্যারে
এটি ঠিকানার সংগ্রহ (বা) পয়েন্টার সংগ্রহ
ঘোষণা
নিম্নে নির্দেশক −
এর অ্যারের জন্য ঘোষণা দেওয়া হলdatatype *pointername [size];
উদাহরণস্বরূপ,
int *p[5];
এটি পয়েন্টারগুলির একটি অ্যারের প্রতিনিধিত্ব করে যা 5টি পূর্ণসংখ্যা উপাদান ঠিকানা ধারণ করতে পারে৷
শুরু করা
শুরুর জন্য '&' ব্যবহার করা হয়।
উদাহরণের জন্য,
int a[3] = {10,20,30}; int *p[3], i; for (i=0; i<3; i++) (or) for (i=0; i<3,i++) p[i] = &a[i]; p[i] = a+i;
অ্যাক্সেস করা হচ্ছে
ইনডাইরেকশন অপারেটর (*) অ্যাক্সেস করার জন্য ব্যবহার করা হয়।
উদাহরণের জন্য,
for (i=0, i<3; i++) printf ("%d", *p[i]);
উদাহরণ প্রোগ্রাম
নীচে পয়েন্টার অ্যারের জন্য প্রোগ্রাম দেওয়া হল -
#include<stdio.h> main ( ){ int a[3] = {10,20,30}; int *p[3],i; for (i=0; i<3; i++) p[i] = &a[i]; printf ("elements of the array are \n"); for (i=0; i<3; i++) printf ("%d \t", *p[i]); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
elements at the array are : 10 20 30
উদাহরণ 2
নীচে স্ট্রিং-
-এ পয়েন্টারগুলির অ্যারের জন্য প্রোগ্রাম দেওয়া হল#include <stdio.h> #include <stdlib.h> int main(void){ char *a[5] = {"one", "two", "three", "four", "five"}; int i; printf ( "the strings are at locations:\n"); for (i=0; i<5; i++) printf ("%d\n", a[i]); return 0; }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
The strings are at locations: 4210688 4210692 4210696 4210702 4210707