কম্পিউটার টিউটোরিয়াল

C প্রোগ্রামিং ভাষায় অ্যারে অফ পয়েন্টার্স ব্যাখ্যা


পয়েন্টার হলো একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের অ্যাড্রেস স্টোর করে।

বিশেষত্ব

  • পয়েন্টার মেমরি স্পেস বাঁচায়।
  • মেমরি লোকেশনে ডায়রেক্ট অ্যাক্সেসের কারণে পয়েন্টারের এক্সিকিউশন টাইম দ্রুত।
  • পয়েন্টার সাহায্যে মেমরি দক্ষতার সাথে অ্যাক্সেস করা যায়, অর্থাৎ মেমরি ডাইনামিক্যালি অ্যালোকেট ও ডি-অ্যালোকেট করা যায়।
  • পয়েন্টার ডেটা স্ট্রাকচারসহ ব্যবহার করা হয়।

পয়েন্টার ঘোষণা ও ইনিশিয়ালাইজেশন

নিচের স্টেটমেন্টটি বিবেচনা করুন −

int qty = 179;

মেমরিতে, ভেরিয়েবলটি নিচের মতো রিপ্রেজেন্ট করা যেতে পারে −

C প্রোগ্রামিং ভাষায় অ্যারে অফ পয়েন্টার্স ব্যাখ্যা

পয়েন্টার ঘোষণা

এতে অর্থ '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]);

উদাহরণ প্রোগ্রাম

অ্যারে অফ পয়েন্টার্স-এর জন্য প্রোগ্রাম নিচে দেওয়া হলো −

#include  main ( ){ 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

  1. সি ভাষায় পয়েন্টার দিয়ে অ্যারিথমেটিক অপারেশন

  2. সি ভাষায় মনোলিথিক এবং মডুলার প্রোগ্রামিং ব্যাখ্যা

  3. সি ভাষায় ইউনিয়ন টু পয়েন্টার ব্যাখ্যা

  4. সি ভাষায় পয়েন্টার অ্যাক্সেসিং ধারণা ব্যাখ্যা