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