কম্পিউটার টিউটোরিয়াল

C++-এ ++*p, *p++ এবং *++p-এর পার্থক্য


এই भागে আমরা দেখব 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' প্রিন্ট করছে।


  1. C++-এ struct এবং typedef struct-এর পার্থক্য

  2. C++-এ new অপারেটর এবং operator new-এর পার্থক্য কী?

  3. C++-এ 'struct' এবং 'typedef struct'-এর পার্থক্য

  4. C++ স্ট্রিং কনস্ট্যান্ট এবং ক্যারেক্টার কনস্ট্যান্টের পার্থক্য