এই भागে আমরা দেখব C++-এ *ptr++, *++ptr এবং ++*ptr-এর মধ্যে পার্থক্য।
এখানে আমরা C বা C++-এ পোস্টফিক্স ++ এবং প্রিফিক্স ++-এর প্রেসিডেন্স দেখব। প্রিফিক্স ++ বা ---এর প্রেসিডেন্স ডিরেফারেন্স অপারেটর '*'-এর চেয়ে বেশি, আর পোস্টফিক্স ++ বা ---এর প্রেসিডেন্স প্রিফিক্স ++ এবং ডিরেফারেন্স অপারেটর '*'-এর চেয়ে বেশি।
যদি 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'।
উদাহরণ কোড (C++)
#include <iostream>
using namespace std;
int main() {
char arr[] = "Hello World";
char *ptr = arr;
*ptr++;
cout << *ptr;
return 0;
}আউটপুট
e
এখানে প্রথমে ptr 'H'-কে পয়েন্ট করছিল। *ptr++ ব্যবহার করার পর পয়েন্টারটিই ইনক্রিমেন্ট হয়েছে, তাই ptr-अব_next এলিমেন্টকে পয়েন্ট করবে। তাই ফলাফল 'e'।
উদাহরণ কোড (C++)
#include <iostream>
using namespace std;
int main() {
char arr[] = "Hello World";
char *ptr = arr;
*++ptr;
cout << *ptr;
return 0;
}আউটপুট
e
এই উদাহরণটিও পয়েন্টারটিই ++ দিয়ে ইনক্রিমেন্ট করছে, যেখানে প্রি-ইনক্রিমেন্ট ++-এর প্রেসিডেন্স বেশি, তাই এটি প্রথমে পয়েন্টার বেড়িয়ে, তারপর * দিয়ে ভ্যালু নিচ্ছে। তাই এটি 'e' প্রিন্ট করছে।