কম্পিউটার

সি প্রোগ্রামিং ভাষায় পয়েন্টারগুলির বিন্যাস ব্যাখ্যা কর


পয়েন্টার হল একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা সংরক্ষণ করে।

বৈশিষ্ট্যসমূহ

  • পয়েন্টার মেমরির স্থান সংরক্ষণ করে।
  • মমরি অবস্থানে সরাসরি অ্যাক্সেসের কারণে পয়েন্টার কার্যকর করার সময় দ্রুত।
  • পয়েন্টারের সাহায্যে, মেমরিটি দক্ষতার সাথে অ্যাক্সেস করা হয়, অর্থাৎ, মেমরি বরাদ্দ করা হয় এবং গতিশীলভাবে ডিললোকেট করা হয়।
  • ডাটা স্ট্রাকচারের সাথে পয়েন্টার ব্যবহার করা হয়।

পয়েন্টার ঘোষণা এবং সূচনা

নিম্নলিখিত বিবৃতিটি বিবেচনা করুন -

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

  1. সি ভাষায় পয়েন্টার ব্যবহার করে গাণিতিক ক্রিয়াকলাপ ব্যাখ্যা কর?

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

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

  4. সি ল্যাঙ্গুয়েজে পয়েন্টার এক্সেসিংয়ের ধারণাটি ব্যাখ্যা কর