এই বিভাগে দেখব C++-এ *ptr++, *++ptr এবং ++*ptr এর পার্থক্য।
C/C++-এ postfix ++ এবং prefix ++-এর প্রেসিডেন্স: prefix ++ বা ---এর প্রাযতিক ডিরেফারেন্স অপারেটর *-এর চেয়ে বেশি, আর postfix ++ বা ---এর প্রাযতিক prefix ++ এবং *-এর চেয়েও বেশি।
যখন ptr একটি পয়েন্টার, তবে *ptr++ বোঝায় *(ptr++) এবং ++*ptr বোঝায় ++(*ptr)।
উদাহরণ কোড: ++*ptr
#include <iostream>
using namespace std;
int main() {
char arr[] = "Hello World";
char* ptr = arr;
++*ptr;
cout << *ptr;
return 0;
}আউটপুট
I
এখানে ptr প্রথমে 'H'-কে পয়েন্ট করে। ++*ptr ব্যবহার করলে 'H'-র মান ১ বাড়ে এবং 'I' হয়।
উদাহরণ কোড: *ptr++
#include <iostream>
using namespace std;
int main() {
char arr[] = "Hello World";
char* ptr = arr;
*ptr++;
cout << *ptr;
return 0;
}আউটপুট
e
*ptr++ ব্যবহার করলে পয়েন্টারটিই বাড়ে, ফলে ptr পরবর্তী এলিমেন্টে ('e') পয়েন্ট করে।
উদাহরণ কোড: *++ptr
#include <iostream>
using namespace std;
int main() {
char arr[] = "Hello World";
char* ptr = arr;
*++ptr;
cout << *ptr;
return 0;
}আউটপুট
e
এখানোর প্রি-ইনক্রিমেন্ট ++-এর প্রেসিডেন্স বেশি, তাই প্রথমে পয়েন্টার বাড়ে, তারপর * দিয়ে মান নেয়। ফলে 'e' প্রিন্ট হয়।