পয়েন্টার হলো একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের অ্যাড্রেস স্টোর করে।
বিশেষত্ব
- পয়েন্টার মেমরি স্পেস বাঁচায়।
- মেমরি লোকেশনে ডায়রেক্ট অ্যাক্সেসের কারণে পয়েন্টারের এক্সিকিউশন টাইম দ্রুত।
- পয়েন্টার সাহায্যে মেমরি দক্ষতার সাথে অ্যাক্সেস করা যায়, অর্থাৎ মেমরি ডাইনামিক্যালি অ্যালোকেট ও ডি-অ্যালোকেট করা যায়।
- পয়েন্টার ডেটা স্ট্রাকচারসহ ব্যবহার করা হয়।
পয়েন্টার ঘোষণা ও ইনিশিয়ালাইজেশন
নিচের স্টেটমেন্টটি বিবেচনা করুন −
int qty = 179;
মেমরিতে, ভেরিয়েবলটি নিচের মতো রিপ্রেজেন্ট করা যেতে পারে −

পয়েন্টার ঘোষণা
এতে অর্থ 'p' হলো একটি পয়েন্টার ভেরিয়েবল, যা অন্য একটি ইন্টিজার ভেরিয়েবলের অ্যাড্রেস ধারণ করে, নিচের মতো −
int *p;
পয়েন্টার ইনিশিয়ালাইজেশন
অ্যাড্রেস অপারেটর (&) ব্যবহার করে পয়েন্টার ভেরিয়েবল ইনিশিয়ালাইজ করা হয়।
উদাহরণস্বরূপ − int qty = 175;
int *p;
p = &qty;
অ্যারে অফ পয়েন্টার্স
এটি অ্যাড্রেসের সংকলন (অথবা পয়েন্টারগুলোর সংকলন)।
ঘোষণা
অ্যারে অফ পয়েন্টার্স-এর জন্য ঘোষণাটি নিচে দেওয়া হলো −
datatype *pointername[size];
উদাহরণস্বরূপ,
int *p[5];
এটি ৫টি ইন্টিজার এলিমেন্টের অ্যাড্রেস ধারণ করতে পারা পয়েন্টার অ্যারে রিপ্রেজেন্ট করে।
ইনিশিয়ালাইজেশন
'&' ইনিশিয়ালাইজেশনের জন্য ব্যবহৃত হয়।
উদাহরণস্বরূপ,
int a[3] = {10, 20, 30}; int *p[3], i; for(i = 0; i < 3; i++) p[i] = &a[i]; // অথবা p[i] = a + i;অ্যাক্সেস করা
ইন্ডিরেকশন অপারেটর (*) অ্যাক্সেসের জন্য ব্যবহৃত হয়।
উদাহরণস্বরূপ,
for(i = 0; i < 3; i++) printf("%d", *p[i]);উদাহরণ প্রোগ্রাম
অ্যারে অফ পয়েন্টার্স-এর জন্য প্রোগ্রাম নিচে দেওয়া হলো −
#includemain ( ){ int a[3] = {10, 20, 30}; int *p[3], i; for(i = 0; i < 3; i++) p[i] = &a[i]; printf("অ্যারেতে এলিমেন্টগুলো:\n"); for(i = 0; i < 3; i++) printf("%d\t", *p[i]); }
আউটপুট
উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যায় −
অ্যারেতে এলিমেন্টগুলো: 10 20 30
উদাহরণ ২
স্ট্রিং-এর জন্য অ্যারে অফ পয়েন্টার্স-এর প্রোগ্রাম নিচে দেওয়া হলো −
#include#include int main(void){ char *a[5] = {"one", "two", "three", "four", "five"}; int i; printf("স্ট্রিংগুলো নিচের লোকেশনে আছে:\n"); for(i = 0; i < 5; i++) printf("%d\n", a[i]); return 0; }
আউটপুট
উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যায় −
স্ট্রিংগুলো নিচের লোকেশনে আছে: 4210688 4210692 4210696 4210702 4210707