আমরা পয়েন্টার তুলনা করতে পারি যদি তারা একই অ্যারের দিকে নির্দেশ করে। দুটি পয়েন্টার তুলনা করতে রিলেশনাল পয়েন্টার ব্যবহার করা যেতে পারে। পয়েন্টারকে গুণ বা ভাগ করা যায় না।
C তে
উদাহরণ
#include <stdio.h> int main() { int *p2; int *p1; p2 = (int *)300; p1 = (int *)200; if(p1 > p2) { printf("P1 is greater than p2"); } else { printf("P2 is greater than p1"); } return(0); }
আউটপুট
P2 is greater than p1
C++ এ
উদাহরণ
#include <iostream> using namespace std; int main() { int *p2; int *p1; p2 = (int *)300; p1 = (int *)200; if(p1>p2) { cout<<"P1 is greater than p2"; } else { cout<<"P2 is greater than p1"; } return(0); }
আউটপুট
P2 is greater than p1
পয়েন্টার তুলনা সম্পর্কে কিছু মূল পয়েন্ট -
-
p1<=p2 এবং p1>=p2 উভয়ই সত্য এবং p1
p2 উভয়ই মিথ্যা ফল দেয়, যদি একই ধরণের দুটি পয়েন্টার p1 এবং p2 একই বস্তু বা ফাংশনের দিকে নির্দেশ করে, অথবা উভয়ই এর শেষের শেষের দিকে একটি পয়েন্ট করে একই অ্যারে, অথবা উভয়ই শূন্য। -
p1
p2, p1<=p2 এবং p1>=p2 অনির্দিষ্ট, যদি একই ধরণের দুটি পয়েন্টার p1 এবং p2 বিভিন্ন বস্তুর দিকে নির্দেশ করে যেগুলি একই বস্তু বা একই অ্যারের উপাদানগুলির সদস্য নয় বা বিভিন্ন ফাংশন, অথবা যদি শুধুমাত্র একটি শূন্য হয়। -
যদি দুটি পয়েন্টার একই অবজেক্টের নন-স্ট্যাটিক ডেটা সদস্যদের দিকে নির্দেশ করে, অথবা একই অ্যাক্সেস কন্ট্রোল সহ এই ধরনের সদস্যদের সাববজেক্ট বা অ্যারে উপাদানগুলির দিকে নির্দেশ করে, তাহলে ফলাফলটি নির্দিষ্ট করা হয়।
-
ফলাফলটি অনির্দিষ্ট, যদি দুটি পয়েন্টার একই বস্তুর বিভিন্ন অ্যাক্সেস নিয়ন্ত্রণ সহ অ-স্থির ডেটা সদস্যদের নির্দেশ করে।