পয়েন্টার হল একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা সংরক্ষণ করে।
পয়েন্টারের বৈশিষ্ট্যগুলি
- পয়েন্টার মেমরির স্থান সংরক্ষণ করে।
- মেমরি অবস্থানে সরাসরি অ্যাক্সেসের কারণে একটি পয়েন্টার কার্যকর করার সময় দ্রুততর হয়৷
- পয়েন্টারের সাহায্যে, মেমরিটি দক্ষতার সাথে অ্যাক্সেস করা হয় অর্থাৎ মেমরি বরাদ্দ করা হয় এবং গতিশীলভাবে ডিললোকেট করা হয়।
- ডাটা স্ট্রাকচারের সাথে পয়েন্টার ব্যবহার করা হয়।
পয়েন্টার ঘোষণা, আরম্ভ এবং অ্যাক্সেস
নিম্নলিখিত বিবৃতিটি বিবেচনা করুন -
int quty =179;
মেমরিতে, ভেরিয়েবলটিকে নীচে দেখানো হিসাবে উপস্থাপন করা যেতে পারে −
ঘোষণা
একটি পয়েন্টার ঘোষণা নীচে দেখানো হিসাবে করা যেতে পারে −
Int *p;
এর মানে 'p' হল একটি পয়েন্টার ভেরিয়েবল যা অন্য পূর্ণসংখ্যা ভেরিয়েবলের ঠিকানা ধারণ করে।
শুরু করা
ঠিকানা অপারেটর (&) একটি পয়েন্টার ভেরিয়েবল শুরু করতে ব্যবহৃত হয়।
উদাহরণস্বরূপ,
int qty =175;int *p;p=&qty;
পয়েন্টারের মাধ্যমে একটি ভেরিয়েবল অ্যাক্সেস করা
ভেরিয়েবলের মান অ্যাক্সেস করতে, ইনডাইরেকশন অপারেটর (*) ব্যবহার করা হয়।
উদাহরণ
পয়েন্টার −
ব্যবহার করে দুটি ম্যাট্রিক্সকে গুণ করার জন্য C প্রোগ্রামটি নিচে দেওয়া হল#include#ROW 3#define COL 3/* ফাংশন ডিক্লারেশন */void matrixInput(int mat[][COL]);void matrixPrint(int mat[][COL]);void matrixMultiply (int mat1[][COL], int mat2[][COL], int res[][COL]);int main() { int mat1[ROW][COL]; int mat2[ROW][COL]; int পণ্য [ROW][COL]; printf("%dx%d\n আকারের প্রথম ম্যাট্রিক্সে উপাদান লিখুন", ROW, COL); matrixInput(mat1); printf("%dx%d\n আকারের দ্বিতীয় ম্যাট্রিক্সে উপাদান লিখুন", ROW, COL); matrixInput(mat2); matrix Multiply (mat1, mat2, পণ্য); printf("উভয় ম্যাট্রিসের পণ্য হল :\n"); ম্যাট্রিক্সপ্রিন্ট (পণ্য); রিটার্ন 0;} void matrixInput(int mat[][COL]) { int row, col; জন্য (সারি =0; সারি |
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত আউটপুট তৈরি করে −
আকারের প্রথম ম্যাট্রিক্সে উপাদান লিখুন 3x32 3 12 5 62 6 8 3x31 2 12 3 45 6 আকারের দ্বিতীয় ম্যাট্রিক্সে উপাদান লিখুন 7 উভয় ম্যাট্রিক্সের পণ্য হল :13 19 2142 55 6454 70 82