***WELCOME TO MY BLOG ** More information about me Click Here.

POINTER IN C



Pointer………. পয়েন্টার আসলে কি? আমরা পয়েন্টার সম্পর্কে জানতে চাই তাহলে আামাদের প্রথমে জানতে হবে পয়েন্টার কি আসুন তাহলে পয়েন্টার সম্পর্কে জানা যাক…….. সাধারন ভাবে বলা যায় পয়েন্টার হল একধরনের ভেরিয়েবল । আমার জানি হাই-লেভেল ল্যাংগুয়েজ এ ডাটা নিয়ে কাজ করার জন্য সরাসরি মেমোরী এ্যাড্রেস ব্যবহার না করে ভেরিয়েবল ব্যবহার করা হয়। কিন্তু প্রোগ্রাম চলাকালীন সময়ে কম্পিউটার ঠিকই ভেরিয়েবলকে মেমোরী এ্যাড্রেসে রুপান্তর করে সংশ্লিষ্ট ডাটাকে মেমোরীতে রাখে । তাই্ প্রোগ্রাম চলাকালে ঐ প্রোগ্রামে ব্যবহত প্রতিটা ভেরিয়েবলেরই একটা মেমোরী এ্যাড্রেস থাকে । pointer হল এমন এক বিশেষ ধরনের ভেরিয়েবল, যার মান বা ডাটা হিসাবে অন্য ভেরিয়েবলের এ্যাড্রেসকে নির্ধারণ করা হয় এবং ঐ এ্যাড্রেসে রাখা ডাটাকে প্রোগ্রামে পরোক্ষভাবে বিভিন্ন কাজে ব্যবহার কারা যায়


Pointer ভেরিয়েবল ডিক্লিয়ার করবেন কিভাবে :
Pointer  কম্পাইলারকে চিনাতে গেলে pointer ভেরিয়েবল এর আগে একটি চিহ্ন বসাতে হবে । যেমন আমরা অ্যারে ডিক্লিয়ার করার সময় করি array [ ] । ঠিক তেমনি pointer ডিক্লিয়ার করা ভেরিয়েবল এর আগে আমরা ‘*’ এই ক্যারেকটারটা ইউজ করব । উদাহরনস্বরুপ যদি আমরা দেখি  int *ptr;
Syntax:
data_type  *pointer name;
example:
int  *gpa;
char  *cgpa;
int  *subject_marks;
এগুলোকে আাবার এভাবেও লিখতে পারেন :
Int*  gpa;
char* cgpa;
int*  subject_marks;





তাহলে এখন একটি প্রোগ্রাম দেখা যাক:
#include <stdio.h>
int main ()
{
    int a, *b;
    a=1;
    b=&a;
    printf ("b= %x\n", b);
    printf ("a= %d\n",a);
    printf ("address of b= %x\n", &a);
    return 0;
}

বর্ননা :

এই প্রোগ্রামটাতে আমরা পয়েন্টার ইউজ করেছি (*b), এবং সেটা দিয়ে আমি সেই ভেরিয়েবলের মেমোরি এড্রেস বের করেছি ।
………...............................................................................................................
int a, *b;
ইন্টিজার টাইপের দুটি ভেরিয়েবল ডিক্লিয়ার করেছি । যার মধ্যে একটি পয়েন্টার ভেরিয়েবল ।
…………...............................................................................................................
    a=1;
    b=&a;
এখানে a ভেরিয়েবল এর মান 1 করে দিয়েছি ।
এবং b  ভেরিয়েবলের মান a ভেরিয়েবল মেমোরি এড্রেস এর সমান করে দিয়েছি ।
…………................................................................................................................
    printf ("b= %x\n", b);
এখানে b এর মেমোরি এড্রেস হেক্রা ডেসিমেল  আকারে দেখার জন্য %x ইউজ করেছি .
............................................................................................................................
    printf ("a= %d\n",a);
এখানে a এর মান ইন্টিজার টাইপের দেখার জন্য %d ইউজ করেছি । 
............................................................................................................................
    printf ("address of b= %x\n", &a);
এখানে b এর মেমোরি এড্রেস হেক্রা ডেসিমেল আকারে দেখার জন্য %x ইউজ করেছি  এবং &a ইউজ করা হয়েছে কারন  যেহেতু b=&a সেহেতু এখানে আমরা &a ইউজ করেছি ।
যেহেতু আমরা ‍a এর মেমোরি এড্রেস দেখতে চাচ্ছি সেহেতু আমাদের আউটপুটে প্রথম (b=) এবং শেষেরটা (address of b=) মেমোরি এড্রেস একই দেখাবে । 



আউপপুট এর স্কিন সট আর দিলাম না আপনারা এটা রান করে দেখে নেন 
                      




             পয়েন্টার সর্ম্পকে বিস্তারিত আগামী পোষ্টে পাবেন ধন্যবাদ (এডমিন)



No comments:

Post a Comment