পয়েন্টার হল একটি ভেরিয়েবল যা অন্য ভেরিয়েবলের ঠিকানা সংরক্ষণ করে।
পয়েন্টার ঘোষণা, আরম্ভ এবং অ্যাক্সেস
নিম্নলিখিত বিবৃতিটি বিবেচনা করুন -
int qty = 179;
পয়েন্টার ঘোষণা করা হচ্ছে
int *p;
'p' হল একটি পয়েন্টার ভেরিয়েবল যা অন্য পূর্ণসংখ্যা ভেরিয়েবলের ঠিকানা ধারণ করে।
পয়েন্টারের সূচনা
ঠিকানা অপারেটর (&) একটি পয়েন্টার ভেরিয়েবল শুরু করতে ব্যবহৃত হয়।
int qty = 175; int *p; p= &qty;
পয়েন্টার ব্যবহার করে গাণিতিক ক্রিয়াকলাপ
পয়েন্টার ভেরিয়েবল এক্সপ্রেশন ব্যবহার করা যেতে পারে. উদাহরণস্বরূপ, যদি পয়েন্টার ভেরিয়েবলগুলি সঠিকভাবে ঘোষণা করা হয় এবং শুরু করা হয় তবে নিম্নলিখিত বিবৃতিগুলি বৈধ৷
a) *p1 + *p2 b) *p1- *p2 c) *p1 * *p2 d) *p1/ *p2 Note: There must be a blank space between / and * otherwise it is treated as beginning of comment line e ) p1 + 4 f) p2 - 2 g) p1 - p2 Note: returns the no. of elements in between p1 and p2 if both of them point to same array h) p1++ i) – – p2 j) sum + = *p2 j) p1 > p2 k) p1 = = p2 l) p1 ! = p2 Note: Comparisons can be used meaningfully in handling arrays and strings
নিম্নলিখিত বিবৃতিগুলি অবৈধ −
a) p1 + p2 b) p1 * p2 c) p1 / p2 d) p1 / 3
প্রোগ্রাম
#include<stdio.h> main (){ int a,b,x,y,z; int *p1, *p2; a =12; b = 4; p1= &a; p2 = &b; x = *p1 * * p2 – 6; y= 4 - *p2 / *p1+10; printf (“Address of a = %d”, p1); printf (“Address of b = %d”, p2); printf (“a= %d b =%d”, a,b); printf (“x= %d y =%d”, x,y); }
আউটপুট
Address of a = 1234 Address of b = 5678 a = 12 b= 4 x = 42 y= 14
ব্যাখ্যা